Python:JSON字符串到字典列表-迭代时出错

Python:JSON字符串到字典列表-迭代时出错,python,json,Python,Json,我正在将一个JSON字符串从Objective-C发送到Python。然后我想把字符串的内容分解成一个Python列表。我正在尝试迭代字符串(目前任何字符串): 我得到这个错误: 异常错误:“列表”对象没有“迭代”属性 json.loads将返回您的list。要迭代它,您不需要iteritems >>> jdata = json.loads(s) >>> for doc in jdata: ... for key, value in doc.iteri

我正在将一个JSON字符串从Objective-C发送到Python。然后我想把字符串的内容分解成一个Python列表。我正在尝试迭代字符串(目前任何字符串):

我得到这个错误:

异常错误:“列表”对象没有“迭代”属性

json.loads
将返回您的
list
。要迭代它,您不需要
iteritems

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

您的JSON数据是一个字典列表,因此在
JSON.load
之后,您将有
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

对于上面的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

你不需要它吗?但是您的解决方案包含它。是
.items()
调用在这一次中救了我;谢谢
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