![](/img/trans.png)
[英]Python - Replace value in JSON file from second file if keys match
[英]Replace JSON value with corresponding value from another JSON file in Python
我正在尝试用另一个 JSON 文件中的值替换 JSON 值。 例如,我有这个 JSON 文件:
{'data': [{'street': '1'}, {'street': '2'}, {'street': '3'}]}
现在我想用这个 JSON 文件的相应值替换 'street' 值:
{'data': [{'1': 'Example Street 1'}, {'2': 'Example Street 2'}, {'3': 'Example Street 3'}]}
所以结果应该是:
{'data': [{'street': 'Example Street 1'}, {'street': 'Example Street 2'}, {'street': 'Example Street 3'}]}
我正在尝试学习python,所以我不知道如何解决这个问题,而且我在互联网上找不到解决方案。 如果有人知道如何解决这个问题,请帮助我。
我们取 dictA 数据字段(它是一个列表)进行迭代。 对于列表中的每个元素我们取元素的值,因为该元素是一个字典并检查它是否在 dataB 'data' 字段列表元素中,然后我们更改 dataA['street'] 字段
dictA ={'data': [{'street': '1'}, {'street': '2'}, {'street': '3'}]}
dictB = {'data': [{'1': 'Example Street 1'}, {'2': 'Example Street 2'}, {'3': 'Example Street 3'}]}
for elementA in dictA['data']:
for elementB in dictB['data']:
if elementA['street'] in elementB:
elementA['street'] = elementB[elementA['street']]
print(dictA)
使用zip函数,同时迭代两个列表
dictA ={'data': [{'street': '1'}, {'street': '2'}, {'street': '3'}]}
dictB = {'data': [{'1': 'Example Street 1'}, {'2': 'Example Street 2'}, {'3': 'Example Street 3'}]}
for elementA,elementB in zip(dictA['data'], dictB['data']):
elementA['street'] =elementB[elementA['street']]
print(dictA)
首先,您需要加载第一个 JSON 文件的内容,然后加载第二个 JSON 文件的内容,找到相应的值(在本例中为“street”键),然后转储新的 JSON进入文件。
就我而言, first.json
包含{"data": [{"street": "1"}, {"street": "2"}, {"street": "3"}]}
和second.json
包含{"data": [{"1": "Example Street 1"}, {"2": "Example Street 2"}, {"3": "Example Street 3"}]}
我使用以下命令创建了一个具有指定值的新 JSON 文件:
import json
with open('first.json') as first_file:
first_json = json.load(first_file)
with open('second.json') as second_file:
second_json = json.load(second_file)
new_data = []
for i in range(len(first_json['data'])):
for j in range(len(second_json['data'])):
key_one, value_one = list(first_json['data'][i].items())[0]
key_two, value_two = list(second_json['data'][j].items())[0]
if value_one == key_two:
new_data.append({key_one: value_two})
with open('new_file.json', 'w+') as new_file:
new_data = {'data': new_data}
json.dump(new_data, new_file)
新的 JSON 文件应包含值
{"data": [{"street": "Example Street 1"}, {"street": "Example Street 2"}, {"street": "Example Street 3"}]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.