如何迭代json键,python

时间:2018-05-23 13:41:14

标签: python json loops dictionary

我正在尝试比较存储在json中的不同字典的键。如果键相同,则将这些键存储在另一个字典中,但我没有得到所需的输出。输入看起来像:

  [  
   {  
      "huma":10,
      "sana":25
   },
   {  
      "sara":12,
      "huma":20,
      "      zeb:15
   }
]
我试过的是:

def compare():
    result_dictionary = {}
    with open('data.json') as data_file:    
        data = json.load(data_file)
        for d1 in data:
            for key, value in d1.items():
                print("key: {key} | value: {value}".format(key=key, value=value))
compare()

我很困惑如何比较多个词典的这些键和匹配的键将它们存储在新词典中?输出应该是“Huma”,因为只有两个词典中的相同。

1 个答案:

答案 0 :(得分:3)

使用collections

<强>演示:

import collections
d = [{  "huma":10,"sana":25}, { "sara":12,"huma":20,"zeb":15}]
dd = collections.defaultdict(list)
for i in d:
    for k,v in i.items():
        dd[k].append(v)
print([k for k,v in dd.items() if len(v) > 1])

<强>输出:

['huma']