用Python问题解析多维json

时间:2012-11-30 05:18:45

标签: python json parsing twitter

我正在使用twitter搜索API并使用python来解析返回的数据。我是一个python-noob,所以我的错误可能是我缺乏理解,尽管我被卡住了。

我的回答如下:

我的代码; " responseJson"是一个文件,我已经保存了来自Twitter的响应,以便继续测试而无需点击API。

responseJson = json.loads(open(DEBUG_JSON).read())

for key, value in responseJson.iteritems():
if key == 'results':
    print "type: ", type(value)
    for tweetKey, tweetValue in value.iteritems():
        print tweetKey

当我执行程序时,我得到:

$ python search.py
type:  <type 'list'> <-- says it's a list!
Traceback (most recent call last):
File "search.py", line 46, in <module>
for tweetKey, tweetValue in value.iteritems():
AttributeError: 'list' object has no attribute 'items'

您可以看到输出显示&#34;值&#34;是一个列表,这意味着我应该能够在其上调用iteritems()。我可以将#iteritems()称为&#34; responseJson就好了。

感谢任何帮助/清晰,TIA!

1 个答案:

答案 0 :(得分:1)

iteritems()只能在dicts和类似对象上运行。加载时,JSON是一个字典。在这种情况下,responseJson是一个字典,而不是列表。

列表没有这样的方法;您可以默认迭代它们。您可能想要仔细检查value实际上是什么。如果它是一个2元素列表,您只需删除iteritems()即可。否则你将不得不更仔细地研究结构。