问题:
是否可以将 JSON 数据加载到 OrderedDict,保留的原始订单键?
答案:
是的,可以使用 JSONDecoder 类的 object_pairs_hook 参数将 JSON 加载到 OrderedDict 中。此参数指定要调用的函数,以从解码的 JSON 数据构造对象。
通过传递 collections.OrderedDict 作为 object_pairs_hook 参数,您可以确保生成的对象是 OrderedDict,保留对象的顺序JSON 数据中的键。
以下是如何使用此参数json.JSONDecoder:
decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict) data = decoder.decode('{"foo":1, "bar": 2}') print(data)
这将输出一个 OrderedDict,其键的顺序与 JSON 数据中出现的顺序相同:
OrderedDict([('foo', 1), ('bar', 2)])
您也可以将此参数与 json 一起使用.loads 可以达到同样的效果:
import json from collections import OrderedDict data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict) print(data)
最后,你可以将此参数与 json.load 一起使用来加载数据从文件到 OrderedDict:
data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
以上是JSON 数据可以加载到 OrderedDict 中,保持键顺序吗?的详细内容。更多信息请关注PHP中文网其他相关文章!