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