迭代JSON以查找是否存在已定义的对象

时间:2011-05-28 22:04:53

标签: python arrays json find loops

感谢您的帮助。我在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 个答案:

答案 0 :(得分:3)

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

any接受任何返回布尔值的生成器g=<generator>,等同于g[0] or g[1] or g[2] or ... or g[N]。当然,如果您不只是想搜索yourJson['data'],那将是一个不同的故事,并且您想要定义一个递归函数。