使用Python合并两个json文件
我是python新手。有人能帮忙解决这个问题吗? 我在使用唯一id合并json a和json b时遇到了这个问题使用Python合并两个json文件,python,json,dictionary,Python,Json,Dictionary,我是python新手。有人能帮忙解决这个问题吗? 我在使用唯一id合并json a和json b时遇到了这个问题 a = [{'id': 1, 'name': 'a', 'e_data': {'reading':'', 'writing':''}}, {'id': 2, 'name': 'b', 'e_data': {'reading':'', 'writing':''}}] b = [{'id':1,'reading':'2','writing':'3'}, {'id':2
a = [{'id': 1, 'name': 'a', 'e_data': {'reading':'', 'writing':''}},
{'id': 2, 'name': 'b', 'e_data': {'reading':'', 'writing':''}}]
b = [{'id':1,'reading':'2','writing':'3'},
{'id':2,'reading':'3','writing':'3'}]
输出
这里有一个简单的方法:
a = [{'id': 1, 'name': 'a', 'e_data': {'reading':'', 'writing':''}},
{'id': 2, 'name': 'b', 'e_data': {'reading':'', 'writing':''}}]
b = [{'id':1,'reading':'2','writing':'3'},
{'id':2,'reading':'3','writing':'3'}]
for dest in a:
for source in b:
if source['id'] == dest['id']:
dest['e_data'].update(source)
a
#[{'e_data': {'id': 1, 'reading': '2', 'writing': '3'}, 'id': 1, 'name': 'a'},
#{'e_data': {'id': 2, 'reading': '3', 'writing': '3'}, 'id': 2, 'name': 'b'}]
试试这个
a = [{'id': 1, 'name': 'a', 'e_data': {'reading':'', 'writing':''}},
{'id': 2, 'name': 'b', 'e_data': {'reading':'', 'writing':''}}]
b = [{'id':1,'reading':'2','writing':'3'},
{'id':2,'reading':'3','writing':'3'}]
for i in a:
for j in b:
if j['id'] == i['id']:
i['e_data'].update(j)
i['e_data'].pop('id')
print(a)
输出:
[{'id': 1, 'name': 'a', 'e_data': {'reading': '2', 'writing': '3'}}, {'id': 2, 'name': 'b', 'e_data': {'reading': '3', 'writing': '3'}}]
[{'id': 1, 'name': 'a', 'e_data': {'reading': '2', 'writing': '3'}}, {'id': 2, 'name': 'b', 'e_data': {'reading': '3', 'writing': '3'}}]