遍历JSON查找定义的对象是否存在

3 投票
1 回答
1289 浏览
提问于 2025-04-16 18:32

谢谢你的帮助。我正在使用Python。

我在请求一个json页面,并加载它。

fooList = json.load(urllib.urlopen(
    "https://path.to.json.com/request?"))

它看起来像这样:

{
   "data": [
      {
         "foo": "2323582"
      },
      {
         "foo": "32689023"
      },
      {
         "foo": "125815512"
      },
      {
         "foo": "1252015"
      },
      {
         "foo": "12518505"
      },
      {
         "foo": "109251907590"
      },
      {
         "foo": "2158019258"
      },
      {
         "foo": "2198059018"
      }
   ]
}

我有一个定义好的对象

obj = 1252015

然后我想遍历那个列表,检查一下obj是否在fooList里面,并给出一个布尔值的答案。

findObj = 'This is where I need help'

预期的结果:

print findObj
True

1 个回答

3
>>> print any(x['foo']=='1252015' for x in yourJson['data'])
True

any 可以接受任何生成器 g=<generator>,这个生成器会返回布尔值,也就是真或假。简单来说,它的意思是 g[0] 或 g[1] 或 g[2] 或 ... 或 g[N],也就是只要有一个返回真,就会返回真。当然,如果你不只是想查找 yourJson['data'],那就另当别论了,你可能需要定义一个递归函数来处理。

撰写回答