我正在尝试从三个字典创建一个新的字典,其中‘field’键不重复,LON和LAX是顶级键。
dict1 = {"LON": {'fields':
{'country': 'England',
'weather': 'rainy'}},
"LAX": {'fields':
{'country': 'America',
'weather': 'sunny'}}}
dict2 = {'fields': {'color' : 'red', 'movie' : 'yes'}}
dict3 = {"LON": {'fields':
{'time-zone': 'CET',
'description': ''}},
"LAX": {'fields':
{'time-zone': 'UTC',
'description': ''}}}新的字典应该是这样的:
**在原始帖子中编辑,newdict中缺少字段‘dict3’值,我已经更正了这个问题。
newdict = {"LON": {'fields':
{'country': 'England',
'weather': 'rainy',
'color' : 'red',
'movie' : 'yes'
'time-zone': 'CET',
'description': ''}}
"LAX": {'fields':
{'country': 'America',
'weather': 'sunny',
'color' : 'red'
'movie' : 'yes'
'time-zone': 'UTC',
'description': ''}}}我已经尝试了下面的解决方案,但是它不能去掉重复的‘field’,而且我也不知道如何将dict2合并进来。任何对不同方法的帮助或想法都将非常感谢,因为我在这一点上并没有走得太远。
result = {}
for key in (dict1.keys() | dict3.keys()):
if key in dict1: result.setdefault(key, []).append(dict1[key])
if key in dict3: result.setdefault(key, []).append(dict3[key])
print(result)发布于 2021-03-18 01:11:09
您可以遍历字典中的键值对,使用for循环和使用Update方法可以将dict2中的键值对添加到dict1中。
update()方法将指定的项插入到字典中。
指定的项可以是字典,也可以是具有键值对的可迭代对象。
for k,v in dict1.items():
for a, b in v.items():
for x , y in dict2['fields'].items():
dict1[k][a].update({x : y})
print(dict1)https://stackoverflow.com/questions/66677720
复制相似问题