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