Python 的标准库 json
提供了对 JSON 的解析,只要 json.load
就可以将 JSON 文件。但它将 JSON 的键值对保持在 dict
里,导致原有的顺序信息丢失。因为 JSON 格式本身的定义就是键顺序无关的,所以 json.load
这个行为是合理的行为。
想要保留此顺序信息,首先需要有一种保持键顺序的、类似 dict
的数据结构。collections.OrderedDict
就是一种好的选择。此外,json.load
本身为这种需求提供了钩子。
import json
import collections
json.load(filename, object_pairs_hook=collections.OrderedDict)