【发布时间】:2019-07-23 20:00:55
【问题描述】:
我是一名 Python 初学者,正在努力解决以下问题:
我正在尝试将多个列表与我从多个 json 解码的嵌套字典合并。列表之间的共同点是每个嵌套字典对应一个名称的“uid”键,但问题是某些字典的键名不同。例如,一个字典可能有“数字”作为键,而不是“uid”。我想将它们的一部分合并到一个超级嵌套字典列表中。为了说明,我所拥有的是:
masterlist = [ ]
listA = [{"uid": "12345", "name": "John Smith"}, {etc...}]
listB = [{"number": "12345", "person": "John Smith", "val1": "25"}, {etc...}]
listC = [{"number": "12345", "person": "John Smith", "val2": "65"}, {etc...}]
我想结束的是:
masterlist = [{"uid": "12345", "name": "John Smith", "val1": "25", "val2: "65"}, {etc...}]
这是否可以通过迭代和比较相同的“uid”值来有效地/以python方式完成?我已经看到很多关于通过匹配键进行合并的方法,但这里的问题显然是键不一致。排序无关紧要。我所需要的只是让主列表包含每个 dict 条目的相应 uid、名称和值。希望这是有道理的,谢谢!
【问题讨论】:
-
我应该澄清一下,如上所示,我可以保留 listA 的键:值对。因此,从这个意义上说,我要问的是如何将 listA 中的每个嵌套字典附加到 listB 中的 val1 和 listC 中的 val2 中,根据常见的“uid/number”值进行匹配。
标签: python json list dictionary merge