1 回答
TA贡献1780条经验 获得超3个赞
from functools import reduce
lst = [{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTCOY': 'A'}}},
{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTPFX': 'CN'}}},
{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTNUM': '50003159'}}}]
def merge(a, b, path=None):
if path is None: path = []
for key in b:
if key in a:
if isinstance(a[key], dict) and isinstance(b[key], dict):
merge(a[key], b[key], path + [str(key)])
elif a[key] == b[key]:
pass
else:
raise Exception('Conflict at %s' % '.'.join(path + [str(key)]))
else:
a[key] = b[key]
return a
d = reduce(merge, lst)
字典 d 的结构将是:
{'MESSAGE_DATA': {
'BGEN_CENQO_XTRA_KEY': {
'BGEN_CENQO_CLNTCOY': 'A',
'BGEN_CENQO_CLNTNUM': '50003159',
'BGEN_CENQO_CLNTPFX': 'CN'
}
}}
添加回答
举报