Python: строка JSON в список словарей – получение ошибки при итерации

Я отправляю строку JSON из Objective-C в Python. Затем я хочу разбить содержимое строки в список Python. Я пытаюсь выполнить итерацию по строке (любая строка на данный момент):

import json s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]' jdata = json.loads(s) for key, value in jdata.iteritems(): print key, value 

Я получаю эту ошибку:

Ошибка исключения: объект 'list' не имеет атрибута 'iterates'

3 Solutions collect form web for “Python: строка JSON в список словарей – получение ошибки при итерации”

Ваши данные JSON – это список словарей, поэтому после json.loads(s) вас будет jdata как список, а не словарь.

Попробуйте следующее:

 import json s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]' jdata = json.loads(s) for d in jdata: for key, value in d.iteritems(): print key, value 

json.loads(s) вернут вам list . Для повторения этого вам не нужны iteritems .

 >>> jdata = json.loads(s) >>> for doc in jdata: ... for key, value in doc.iteritems(): ... print key, value 

для python 3.6 выше, есть небольшая разница

 s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]' jdata = json.loads(s) print (jdata) for d in jdata: for key, value in d.items(): print (key, value) [{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}] i imap.gmail.com p someP@ss i imap.aol.com p anoterPass 
  • Как преобразовать xml-файл в JSON с помощью python?
  • Эффективность декодирования Python JSON
  • Единичное тестирование Django JSON View
  • django-rest-framework: как мне сериализовать поле, которое уже содержит JSON?
  • Выдержка из динамического ответа JSON с помощью Scrapy
  • Как вернуть объект json в конечных точках Google
  • Запросы Python: получить атрибуты из возвращенной строки JSON
  • Каков наиболее эффективный способ вставки словарей / списков Python в базу данных SQL?
  • Python - лучший язык программирования в мире.