引用列表中的所有索引并检查python

时间:2017-03-29 13:55:18

标签: python json list

我试图在我的python3脚本中创建if块,检查我从JSON中提取的列表中是否存在值。 JSON数据如下:

[
  {
    "id": 59616405645,
    "name": "Foo"
  },
  {
    "id": 990164054345,
    "name": "FindMe"
  },
  {
    "id": 2009167874,
    "name": "Bar"
  }
]

我试图确定列表中是否存在Bar的值。为此,我执行以下操作直接引用索引:

if "FindMe" in m_orgs[1].values():
    print("Yo it's here")
else:
    print("Yo it's not here.")

但我拉的JSON数据总会有不同的结果,我们永远不会知道索引号,所以直接引用不起作用。如何一次引用列表中的所有索引?

3 个答案:

答案 0 :(得分:2)

您无法一次引用所有索引,但您可以遍历它们,并在找到第一个存在时立即停止。类似的东西:

found = any("findMe" in item.values() for item in m_orgs)

此行将在找到第一个True值时停止执行。最糟糕的情况是,它会查看每个位置而没有找到任何东西。

答案 1 :(得分:1)

您可以像这样使用any()

if any(d['name'] == 'Foo' for d in json):
    do this

答案 2 :(得分:1)

您可以先将原始json数据转换为数据集,然后只需检查设置操作,

name_set = {org['name'] for org in m_orgs}
print 'FindMe' in name_set