【发布时间】:2019-07-24 13:42:38
【问题描述】:
我有两个 python 字典,我需要一种有效的方法来迭代一个字典,检查每个条目与另一个字典的多个值。如果条目不存在,我需要将该条目从一个字典添加到源字典。
我尝试了不同的方法,例如对两个字典值使用 itter() 并使用“in”来查看值是否存在,但逻辑在某处被破坏。
for key, value in export_data.iteritems():
if value['computer_id'] and value['computer_name'] in import_data.iteritems():
如果 computer_id 和 computer_name 在 import_data 中,则继续,如果没有,则将 import_data 中缺少的字典项添加到 export_data 字典中。
在下面的示例数据中,“import_data”有一个额外的项目“host-c”,我希望将其添加到 export_data 字典中。
我遇到困难的部分是“host-g”还有一条记录,但 computer_id 与 export_data 中的 host-a 相同,所以我不想添加该条目。
只有 computer_name 和 computer_id 不同的唯一项目。
示例数据:
export_data =
{u'host-a': {'computer_id': [u'6353a65387'], 'computer_name': ['host-a'], 'first_observed': ['Wed Jul 24 13:57:56 2019']}, {u'host-b': {'computer_id': [u'635365d387'], 'computer_name': ['host-b'], 'first_observed': ['Wed Jul 24 13:57:56 2019']}
import_data =
{u'host-a': {'computer_id': [u'6353a65387'], 'computer_name': ['host-a'], 'first_observed': ['Wed Jul 24 13:57:56 2019']}, {u'host-b': {'computer_id': [u'635365d387'], 'computer_name': ['host-b'], 'first_observed': ['Wed Jul 24 13:57:56 2019']},{u'host-c': {'computer_id': [u'6353654d387'], 'computer_name': ['host-c'], 'first_observed': ['Wed Jul 24 13:57:56 2019']},{u'host-g': {'computer_id': [u'6353a65387'], 'computer_name': ['host-g'], 'first_observed': ['Wed Jul 24 13:57:56 2019']}
【问题讨论】:
-
如果键在两者中都存在但值不同,您希望看到什么?
-
你应该给出一个示例输入和预期输出。
标签: python dictionary compare