AttributeError: '模块'对象没有属性'loads'在TwitterAPI调用中(遍历推文)?

1 投票
1 回答
7270 浏览
提问于 2025-04-18 04:27

在TwitterAPI页面上运行示例代码时,我遇到了以下错误。

Traceback (most recent call last):
  File "D:/Cloud/Dropbox/Coding/Python/EUR - BigData & Analytics/Workshops/Tutorial 2/twitter_query_scraper_revisited.py", line 76, in <module>
    for tweet in tweet_sequence:
  File "C:\Python33\lib\site-packages\TwitterAPI\TwitterAPI.py", line 116, in __iter__
    for item in self.get_iterator():
  File "C:\Python33\lib\site-packages\TwitterAPI\TwitterAPI.py", line 113, in     get_iterator
    return RestIterator(self.response)
  File "C:\Python33\lib\site-packages\TwitterAPI\TwitterAPI.py", line 139, in __init__
    resp = response.json()
  File "C:\Python33\lib\site-packages\requests\models.py", line 741, in json
    return json.loads(self.text, **kwargs)
AttributeError: 'module' object has no attribute 'loads'

我尝试过各种代码,但一直没能解决这个问题。 这是我正在运行的代码:

from TwitterAPI import TwitterAPI
api = TwitterAPI(consumer_key, consumer_secret, access_token_key, access_token_secret)

r = api.request('search/tweets', {'q':'pizza'})
for item in r.get_iterator():
    print item

我正在使用最新版本的TwitterAPI(2.1.13),requests库是2.2.1,并且我在Windows 8上运行Python 3.3.4。

非常感谢任何帮助。

1 个回答

6

你有一个叫做 json 的模块,它覆盖了标准库中的同名模块,所以你导入的是你自己的这个模块。

因为你自己写的 json 模块里没有 loads() 这个函数,所以 request 库在使用的时候出错了。

你可以通过运行以下命令来找到这个模块的文件位置:

import json
print(json.__file__)

把那个模块改个名字。

撰写回答