有没有办法循环遍历两组JSON数组,并从文件2中识别出与文件1相比的其他数组项?示例如下:
文件1:
{
"Cars": [{
"type": "Ford"
},
{
"type": "BMW"
}
]
}
档案:2
{
"Cars": [{
"type": "Ford"
},
{
"type": "BMW"
},
{
"type": "Vauxhall"
},
{
"type": "Fiat"
}
]
}
期望的结果:
附加信息是:
{
"Cars": [{
"type": "Vauxhall"
},
{
"type": "Fiat"
}
]
}
我正在努力用Python进入数组。任何帮助非常感谢。
答案 0 :(得分:1)
不确定这是最优或最好的方法,但它应该有效
假设您在python
中将数组设为dict
a = []
b = []
for val in array1["Cars"]:
a.append(val["type"])
for val in array2["Cars"]:
b.append(val["type"])
diff = ( set(a) | set(b) ) - ( set(a) & set(b) )
您可以迭代diff
并以所需格式创建json / dict。
答案 1 :(得分:1)
如果您的数据很简单,请使用in
:
for c in y['Cars']:
if c not in x['Cars']:
print(c)
或者作为列表理解:
diff_dict = {'Cars': [c for c in y['Cars'] if c not in x['Cars']]}
输出:
{'Cars': [{'type': 'Vauxhall'}, {'type': 'Fiat'}]}
你提到你很难将文件导入python。我使用了json.load()