我正在尝试使用另一个字典中的键值对更新字典键。我尝试合并的两个词典都嵌套在列表中:
dictionary1 = [{ '32639': {'78549': {'526' : { 'sum': 8930.40, 'min' : 2380, 'max': 74839}}}} , {'89304': {'20384': {'152' : { 'sum': 51235.20, 'min' : 4512, 'max': 362.69}}}}, { '41526': {'45315': {'364' : { 'sum': 8985.65, 'min' : 3632.32, 'max': 4558.15}}}}]
dictionary2 = [{'32639':'90283'}, {'49034': '89203'}, {'28942': '39024'}, {'41526':'24903'} ]
我希望生成的字典看起来与dictionary1完全相同,但是如果dictionary1中字典的键在dictionary2中字典的键中,则应该更改它们
结果字典:
new_dictionary = [{ '90283': {'78549': {'526' : { 'sum': 8930.40, 'min' : 2380, 'max': 74839}}}} , {'89304': {'20384': {'152' : { 'sum': 51235.20, 'min' : 4512, 'max': 362.69}}}}, { '24903': {'45315': {'364' : { 'sum': 8985.65, 'min' : 3632.32, 'max': 4558.15}}}}]
我曾尝试:
list1 = []
for d1, d2 in zip(dictionary1, dictionary2):
for key, value in d1.iteritems():
new_dict = {}
if key in d2:
new_dict[d2[key]] = value
list1.append(new_dict)
else:
new_dict[key] = value
list1.append(new_dict)
但是它不起作用,在这个示例数据上它起作用。然而,程序仅根据字典2的长度迭代字典1。因此,我尝试使用一个包含841个字典(字典1)和53个字典(字典2)的列表来运行它,它在退出之前只转换字典1中的前53个键
试着这样做:
我得到了输出:
{'90283': {'78549': {'526': {'sum': 8930.4, 'min': 2380, 'max': 74839}}}, '32639': {'78549': {'526': {'sum': 8930.4, 'min': 2380, 'max': 74839}}}, '89304': {'20384': {'152': {'sum': 51235.2, 'min': 4512, 'max': 362.69}}}, '41526': {'45315': {'364': {'sum': 8985.65, 'min': 3632.32, 'max': 4558.15}}}, '24903': {'45315': {'364': {'sum': 8985.65, 'min': 3632.32, 'max': 4558.15}}}}
相关问题 更多 >
编程相关推荐