Найти строку в JSON с помощью Python

В настоящее время я получаю очень длинный JSON, и я пытаюсь выбрать из него 2 части информации через Python 2.7.

JSON выглядит примерно так:

{ 'device': [ { 'serial': '00000000762c1d3c', 'registered_id': '019' }, { 'serial': '000000003ad192f2', 'registered_id': '045' }, { 'serial': '000000004c9898aa', 'registered_id': '027' } ], } 

Внутри этого JSON я ищу конкретный сериал, который может совпадать с одним в JSON. Если это так, он также должен распечатать register_id.

Я пробовал использовать простой скрипт, даже без register_id, но я никуда не ухожу:

 if '00000000762c1d3c' not in data['device']: print 'not there' else: print 'there' 

Спасибо за ваши предложения!

3 Solutions collect form web for “Найти строку в JSON с помощью Python”

date['device'] содержит список объектов, поэтому вы должны рассматривать их как таковые и перебирать их:

 for element in data['device']: if element['serial'] == '00000000762c1d3c': print 'there' print element['registered_id'] break else: print 'not there' 

Это использует как-то менее известную конструкцию for-else : https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops

во-первых, ваш вход не json. Json использует двойные кавычки. Но предположим, что вы успешно загрузили его с помощью json, теперь это словарь, называемый d .

Затем вы можете сканировать все поддиктограммы d и проверять serial ключ на ваше значение, останавливаясь при обнаружении с использованием any и понимания генератора:

 print(any(sd['serial']=='00000000762c1d3c' for sd in d['device'])) 

возвращает True если последовательный файл False противном случае.

Возможно, это поможет вам:

 if [x for x in data['device'] if x.get('serial')=='00000000762c1d3c']: print "IN" else: print "NOT" 

Python: List Comprehensions можно использовать для создания списков очень естественным и простым способом, как это делает математик.

  • Сериализация объектов, содержащих запросы django
  • Pyparsing: анализ полных JSON вложенных данных открытого текста в список
  • Создание json в python для механизма приложения
  • MemoryError с помощью json.dumps ()
  • В Python, json не избежать строки
  • Преобразование тестовых клиентских данных в JSON
  • Преобразовать JSON в массив?
  • Сохранение данных о песнях, исполнителях и альбомах в App Engine
  • Python - лучший язык программирования в мире.