python中的json数据操作
我有两组JSON格式的数据: 数据1 数据2 我试图检查data1和data2中的python中的json数据操作,python,python-3.x,Python,Python 3.x,我有两组JSON格式的数据: 数据1 数据2 我试图检查data1和data2中的en_name是否匹配。在比赛中,请执行以下操作: 创建另一个映射数据集(dict)作为data3,该数据集将包含两个元素。来自数据1的完整的spcg数组和来自数据2的e_id 用数据2中匹配的e\u id替换spcg数组中键b\u id(此处插入数据2中的e\u id)的默认值 这是我尝试过的,但它与en\u名称不匹配。 没有关于如何实现这一点的线索,特别是第二个,因为我不是python方面的专家 ab=[] c
en_name
是否匹配。在比赛中,请执行以下操作:
spcg
数组和来自数据2的e_id
e\u id
替换spcg
数组中键b\u id
(此处插入数据2中的e\u id)的默认值en\u名称
不匹配。
没有关于如何实现这一点的线索,特别是第二个,因为我不是python方面的专家
ab=[]
cd=[]
for keyt in data1:
temp=data1['en_name']
for keyz in data2:
if temp == keyz['en_name']:
ab.append(keyz['e_id'])
cd.append(key['spcg'])
data3 =[{'e_name': b, 'spcg': l} for b, l in zip(ab, cd)]
任何帮助都会很好您应该使用python中内置的
json-json编码器和解码器
库。此库简化了json
文件的处理
以下是您可能要尝试的代码:
import json
data3 = []
with open("data1.json", "r") as f1:
data1 = json.load(f1)
with open("data2.json", "r") as f2:
data2 = json.load(f2)
for item1 in data1["c_u0"]:
for item2 in data2:
if item1["en_name"] == item2["en_name"]:
spcg = item1["spur"]["spcg"]
eid = item2["eid"]
for sp in spcg:
sp["b_id"] = eid # substitute the b_id with eid
data3.append({ "spcg": spcg, "e_id": eid})
print(data3)
希望这能有所帮助。在处理JSON数据时,您可以通过使用库使其变得更容易,例如,标准中包含了哪些内容library@KJTHoward是的,我也了解了同样的知识,但这有什么帮助?你能详细说明一下吗?只是检查了链接,发现
data1
不是一个有效的JSON字符串。不简单地将JSON字符串粘贴到这里作为文本的原因是什么?@accdias更改了相同的内容,并在问题1中更新了逗号缺少,感谢您指出它没有按照预期正确匹配名称:“《akamai app external-dfgt也应该根据所需的输出进行匹配,但它只匹配en_name:”Aakle akamai
@John这是因为它们在您的json文件中不同,再次检查数据2中的-
后面是否有额外的空格。如果两者在间距和全部方面相同,json
是否仅与名称完全匹配?是。对于要匹配的字符串,它们应该包含相同的字符。您可以尝试item2[“en_name”]。在比较时替换('-','-')
。
ab=[]
cd=[]
for keyt in data1:
temp=data1['en_name']
for keyz in data2:
if temp == keyz['en_name']:
ab.append(keyz['e_id'])
cd.append(key['spcg'])
data3 =[{'e_name': b, 'spcg': l} for b, l in zip(ab, cd)]
import json
data3 = []
with open("data1.json", "r") as f1:
data1 = json.load(f1)
with open("data2.json", "r") as f2:
data2 = json.load(f2)
for item1 in data1["c_u0"]:
for item2 in data2:
if item1["en_name"] == item2["en_name"]:
spcg = item1["spur"]["spcg"]
eid = item2["eid"]
for sp in spcg:
sp["b_id"] = eid # substitute the b_id with eid
data3.append({ "spcg": spcg, "e_id": eid})
print(data3)