【发布时间】:2017-03-13 03:11:33
【问题描述】:
使用here 描述的方法,我在加载嵌套 JSON 文件时将OrderedDict 传递为object_pairs_hook,以保持顺序。
订单被保留,这对于 大多数 JSON 对象来说很好。但是 JSON 的某些部分(在嵌套的最低级别)如下所示:
"In Content" : {
"Sulvo" : "abc.com_336x280_he-inlinecontentmobile",
"Sulvo" : "abc.com_336x280_he-inlinecontentmobile_level2",
"Sulvo" : "abc.com_336x280_he-inlinecontentmobile_level3",
"Adsense" : ""
},
在处理时,只会保留这些相同的密钥之一:
OrderedDict([(u'Sulvo', u'homeepiphany.com_336x280_he-inlinecontentmobile_level3'),
(u'Adsense', u'')])),
我知道我们可以有一个字典,其中包含多个具有相同键名的项目,defaultdict。但是以下方法不起作用,即使它起作用了,我认为我们会获得钥匙但失去订单,所以我们也不会更好:
j = json.load(open('he.json'), object_pairs_hook=defaultdict)
是否可以保持顺序AND一次性保存所有密钥?
Python 2.7.12
【问题讨论】:
标签: python python-2.7 dictionary ordereddictionary defaultdict