Python:字典列表的JSON字符串 - 迭代时获取错误

jan*_*neh 18 python json

我正在从Objective-C发送一个JSON字符串到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
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

异常错误:'list'对象没有属性'iterates'

And*_*ark 23

您的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
Run Code Online (Sandbox Code Playgroud)


Ale*_*yev 5

json.loads(s)会回报你list。要迭代它,您不需要iteritems.

>>> jdata = json.loads(s)
>>> for doc in jdata:
...     for key, value in doc.iteritems():
...          print key, value
Run Code Online (Sandbox Code Playgroud)

  • 你不需要迭代器吗?但是您的解决方案包含它。 (9认同)