如何在不同的JSON文件之间进行比较并在新的JSON文件中获取结果?

时间:2019-07-14 03:14:56

标签: python json python-3.x

我试图将两个JSON文件收集到一个JSON文件中,但是它们完全不同,但是有些元素是相同的,例如:NAME。因此,我想获取不同的元素并添加,但是要给它们添加新的Key名称,并从相似的元素中选择一个元素,我是说Key!

我试图用这种方法做到这一点:


data = json.load(open("file1.json", encoding="utf-8-sig"))
data2 = json.load(open("file2.json", encoding="utf-8-sig"))
    for q in data :
        for d in data2:
            if d["web Name"]== q["Name"]:
                ALLDATA.append({
                        "name": q["Name"],
                        "rating":q["Rating"],
                        "addressf1": q["Address"],
                        "URLf2": d["URL"],

              })
                break
            else:
                pass
            pass

在名称键中,我选择要获取值的文件。 但是该方法给我错误:

Traceback (most recent call last):
  File "E:/project/PycharmProjects/json work/testing.py", line 63, in <module>
    "addressf1": q["Address"],
KeyError: 'Address' 

当我尝试在同一循环中打印地址时,它将打印一次并停止。

1 个答案:

答案 0 :(得分:0)

谢谢约翰·戈登。

问题就像您在评论中说的一样。

谢谢大家。

然后,我使用此代码在每个元素上用缺少的键填充JSON文件:

finaldata=[]
data = json.load(open("file1.json", encoding="utf-8-sig"))
for item in data :
    if "Address" in item:
        finaldata.append(item)
        pass
    else:
        item["Address"]=None
        finaldata.append(item)