Python两个字典并获取匹配值

时间:2020-06-22 16:45:47

标签: python python-3.x pandas loops dictionary

有两个字典

dictss =[
  {
  'country': 'USA'},

  {'name': 'matt',
  'country': 'USA'},


  {'name': 'tom',
  'country': 'USA'}]

  dicts_to_be_mapped = [{

  'name':'matt'
  }]

尝试使用此地图:

res = [d for d in dictss if d["name"] == dicts_to_be_mapped[0]['name']]

对于没有name的字典,它将引发错误。在不使用熊猫和循环的情况下映射两个字典的有效方法是什么?是否可以使用查找功能或任何查找功能?

2 个答案:

答案 0 :(得分:1)

您在这里:

res = [d for d in dictss if d.get("name") == dicts_to_be_mapped[0]['name']]
print(res)

输出

[{'name': 'matt', 'country': 'USA'}]

答案 1 :(得分:1)

使用d.get代替d["name"]

res = [d for d in dictss if d.get("name") == dicts_to_be_mapped[0]['name']]

结果是:

[{'name': 'matt', 'country': 'USA'}]