0

我正在使用 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'

您可以看到输出显示“value”是一个列表,这意味着我应该能够在其上调用 iteritems()。我可以在“responseJson”上调用 iteritems() 就好了。

任何帮助/清晰表示赞赏,TIA!

4

1 回答 1

1

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

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

于 2012-11-30T05:27:10.320 回答