Python JSON 输入顺序

Python JSON input order

我正在尝试读取一个 JSON 文件,其中包含我想保持有序的数据,因为它是一个无法更改的数学方程式。我试过使用 OrderedDict() 但这不起作用(或者我无法让它工作)。

这是我使用的代码:

import json
from collections import OrderedDict

json_data = open('example3.json')
data = OrderedDict(json.load(json_data))

print (json.dumps(data))

谁能解释一下为什么这不起作用?

亲切的问候 克雷格

json.load 会将 json 数据加载到字典中。然后将此字典转换为 OrderedDict。不幸的是,因为它是字典 first,所以在 OrderedDict.

中的 "set" 之前,顺序可能已经改变了

要将 json 直接加载到 OrderedDict 中,您可以将关键字参数 object_pairs_hookOrderedDict 一起使用。有关详细信息,请参阅 the documentation

import json
from collections import OrderedDict

json_data = open('example3.json')
data = json.load(json_data, object_pairs_hook=OrderedDict)