首页 >后端开发 >Python教程 >JSON 可以加载到 Python OrderedDict 中以保留键顺序吗?

JSON 可以加载到 Python OrderedDict 中以保留键顺序吗?

Linda Hamilton
Linda Hamilton原创
2024-12-02 13:45:12732浏览

Can JSON be Loaded into a Python OrderedDict to Preserve Key Order?

将 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn