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_hook
与 OrderedDict
一起使用。有关详细信息,请参阅 the documentation。
import json
from collections import OrderedDict
json_data = open('example3.json')
data = json.load(json_data, object_pairs_hook=OrderedDict)
我正在尝试读取一个 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
.
要将 json 直接加载到 OrderedDict
中,您可以将关键字参数 object_pairs_hook
与 OrderedDict
一起使用。有关详细信息,请参阅 the documentation。
import json
from collections import OrderedDict
json_data = open('example3.json')
data = json.load(json_data, object_pairs_hook=OrderedDict)