Итерация по JSON, чтобы найти, существует ли определенный объект - PullRequest
3 голосов
/ 29 мая 2011

Спасибо за помощь. Я работаю в 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 голосов
/ 29 мая 2011
>>> 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'], это будет другая история, и вы захотите определить рекурсивную функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...