Как разобрать JSON с несколькими ключами одинаково?

У меня есть json, который напоминает это:

{"posts":[{"no":3919193, "p": "kekekekek"}, {"no":3929342, "p": "trololol"}]} 

Я хочу извлечь все, что имеет ключ «нет», как бы я это сделал?

Я знаю, что могу использовать json.load для разбора, но я не уверен, как получить доступ к каждому значению. Заранее спасибо!

2 Solutions collect form web for “Как разобрать JSON с несколькими ключами одинаково?”

Вы могли бы использовать понимание списка для прокрутки dicts в obj['posts'] :

 obj = json.load(...) [dct for dct in obj['posts'] if 'no' in dct] 

Например,

 >>> import json >>> obj = json.loads('''{"posts":[{"no":3919193, "p": "kekekekek"}, {"no":3929342, "p": "trololol"}]}''') >>> [dct for dct in obj['posts'] if 'no' in dct] [{u'no': 3919193, u'p': u'kekekekek'}, {u'no': 3929342, u'p': u'trololol'}] 

После использования json.load вас будет словарь, единственный ключ которого относится к списку словарей:

 data = json.loads("""{"posts":[{"no":3919193, "p": "kekekekek"}, {"no":3929342, "p": "trololol"}]}""") nos = [i for i in data['posts'] if 'no' in i] 

Конечно, каждый элемент списка в вашем примере удовлетворяет вашему требованию, чтобы у объекта был ключ «нет».

  • Как преобразовать список в jsonarray в python
  • Как создать sqlalchemy для json
  • Модель Peewee для JSON
  • UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0xa5 в позиции 0: недопустимый стартовый байт
  • разбор вложенных JSON на несколько фреймов данных с использованием pandas python
  • Как обрабатываются операции импорта в plpython?
  • Какова практическая разница между xml, json, rss и атомом при взаимодействии с Twitter?
  • Фляга-Беспокойные свалки Десятичное значение от фляги-шквалы
  • Python - лучший язык программирования в мире.