我有一个类似于以下内容的JSON(此示例仅是一个玩具示例,用于说明要点,默认情况下,运气可以实现默认迭代)。
{ "A": 1, "B": 2, "C": 3 }
我可以将此JSON加载到Python(v2.7)字典中。
with open('/path/to/json/file') as f:
json_data = json.load(f)
然后我按如下所示遍历键值对。
for k, v in json_data.iteritems():
print('{}, {}'.format(k, v))
打印内容如下。
A, 1 C, 3 B, 2
我想要的是能够按照JSON中指定的顺序遍历项目。所以,我的预期输出应该是。
A, 1 B, 2 C, 3
是否有任何方法可以将JSON中的键/值对读入并存储到Python字典中,以便当我对其进行迭代时,可以保留JSON指定的顺序并以这种顺序回读?
我无法控制JSON的生产者将数据存储在数组中(对于Java,讨论的是here)。我想知道是否有LinkedHashMap像Python中的Java一样,也许我可以和json.load
一起使用来保留读取的插入顺序。
感谢您的帮助。
答案 0 :(得分:4)
您可以获取json加载器来构建OrderedDict:
import json
import collections
with open('example.json') as f:
json_object = json.load(f,object_pairs_hook=collections.OrderedDict)