我正在使用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!
答案 0 :(得分:1)
iteritems()
只能在dicts和类似对象上运行。加载时,JSON是一个字典。在这种情况下,responseJson是一个字典,而不是列表。
列表没有这样的方法;您可以默认迭代它们。您可能想要仔细检查value
实际上是什么。如果它是一个2元素列表,您只需删除iteritems()
即可。否则你将不得不更仔细地研究结构。