我正在寻找一种通过dict(a.items()+b.items())
以外的其他方式合并词典的方法。
示例:
foo = {'cart':
{'item':
{'1':
{'amount':
'X',
},
},
},
}
bar = {'cart':
{'item':
{'2':
{'amount':
'Y',
},
},
},
}
通缉结果:
res = {'cart':
{'item':
{'1':
{'amount':
'X'
},
},
{'2':
{'amount':
'Y',
},
},
},
}
实际结果(获得bei dict(foo.items()+ bar.items()):
res = {'cart':
{'item':
{'2':
{'amount':
'Y',
},
},
},
}
提前多多感谢!
答案 0 :(得分:1)
发现代码片段对我的用例表现相当不错:
def deepupdate(original, update):
"""
Recursively update a dict.
Subdict's won't be overwritten but also updated.
"""
for key, value in original.iteritems():
if not key in update:
update[key] = value
elif isinstance(value, dict):
deepupdate(value, update[key])
return update