Tweepy代码报错:'API'对象无'trends_place'属性,求解决方案
解决Tweepy报错:'API' object has no attribute 'trends_place'
问题根源
这个报错的核心原因是Tweepy版本不兼容或认证方式错误:
- Tweepy 4.0+版本中,原
OAuthHandler已被重命名为OAuth1UserHandler,旧写法可能导致API对象初始化异常,进而缺失方法。 - 若使用过新/过旧的Tweepy版本,
API类的方法结构可能发生变化,trends_place方法被移除或调整位置。 - 另外,Twitter API免费层级账号可能无权限访问
trends/place端点,但这会报权限错误而非属性不存在。
解决方案
方案1:适配Tweepy 4.x+版本(推荐)
修改认证代码为新版本的授权类,同时验证认证有效性:
import tweepy # 替换OAuthHandler为OAuth1UserHandler(Tweepy 4.x+要求) auth = tweepy.OAuth1UserHandler( "consumer_key", "consumer_secret", "access_token", "access_token_secret" ) api = tweepy.API(auth) # 先验证认证是否成功 try: api.verify_credentials() print("认证成功") except Exception as e: print(f"认证失败:{str(e)}") exit() woeid = 1 # 全球趋势的WOEID trends = api.trends_place(woeid) for trend in trends[0]["trends"]: print(trend["name"])
方案2:降级到兼容的旧版本
若不想修改代码,可以降级到Tweepy 1.14.0版本(该版本保留了旧的OAuthHandler和trends_place方法):
pip uninstall tweepy -y pip install tweepy==1.14.0
执行完成后,原代码可直接运行。
额外注意事项
- 确保你的Twitter开发者账号已开通Twitter API v1.1的访问权限,且账号层级(基础级及以上)支持
trends/place端点访问。 - 替换代码中的
consumer_key、consumer_secret、access_token、access_token_secret为你自己的开发者凭证。
内容的提问来源于stack exchange,提问作者kanika saini
相关产品推荐
相关产品推荐

