将 JSON 加载到 OrderedDict
在 Python 中,OrderedDict 维护其键的顺序,这与常规字典不同。虽然可以使用 json.dump 将 OrderedDict 转储到 JSON,但我们是否也可以将 JSON 加载回 OrderedDict 以保留原始键顺序?
将 JSON 加载到 OrderedDict
要将 JSON 加载到 OrderedDict 中,请使用 JSONDecoder 类或中的 object_pairs_hook 参数json.loads 和 json.load。此参数指定一个函数,该函数将在加载 JSON 对象中的每对键和值时调用。
例如,使用 JSONDecoder 类将 JSON 加载到 OrderedDict 中:
import json from collections import OrderedDict decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict) data = decoder.decode('{"foo": 1, "bar": 2}')
你也可以将 object_pairs_hook 参数直接传递给 json.loads:
import json from collections import OrderedDict data = json.loads('{"foo": 1, "bar": 2}', object_pairs_hook=Collections.OrderedDict)
或者打开时JSON 文件:
import json from collections import OrderedDict with open('config.json') as f: data = json.load(f, object_pairs_hook=OrderedDict)
这会将 JSON 数据加载到 OrderedDict 中,同时保持键的原始顺序。
以上是JSON 可以加载到 Python OrderedDict 中以保留键顺序吗?的详细内容。更多信息请关注PHP中文网其他相关文章!