首页 >后端开发 >Python教程 >JSON 输出可以是 OrderedDict 吗?

JSON 输出可以是 OrderedDict 吗?

Linda Hamilton
Linda Hamilton原创
2024-12-06 09:29:12804浏览

Can JSON Output Be an OrderedDict?

使用 OrderedDicts 作为 JSON 输出

JSON 可以加载到 OrderedDict 中吗?

在 JSON 序列化中,OrderDicts 可以是用作输入。然而,出现了一个关键问题:它们也可以充当输出吗?如果是这样,流程是什么?

JSON 作为 OrderedDicts 中的输出

是的,OrderDicts 确实可以用作 JSON 输出。这是通过在 JSONDecoder 中指定 object_pairs_hook 参数来实现的。如文档中所述,这是以下示例中演示的方法:

>>> json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode('{"foo":1, "bar": 2}')
OrderedDict([('foo', 1), ('bar', 2)])
>>> 

替代 JSON 输出参数

为了方便起见,您还可以传递此参数直接到 json.loads (不需要 Decoder 实例):

>>> import json
>>> from collections import OrderedDict
>>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
>>> print json.dumps(data, indent=4)
{
    "foo": 1,
    "bar": 2
}
>>> 

加载将 JSON 数据加载到 OrderedDicts

类似地,可以使用 json.load 以相同的方式将 JSON 数据加载到 OrderDicts 中:

>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)

以上是JSON 输出可以是 OrderedDict 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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