我试图在我的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数据总会有不同的结果,我们永远不会知道索引号,所以直接引用不起作用。如何一次引用列表中的所有索引?
答案 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