如何修复'Tweet'对象没有'retweetCount'属性的AttributeError报错
snscrape抓取推特时报AttributeError错误的解决方法
错误原因
你使用的snscrape 0.3.4版本中,Twitter模块的Tweet对象转推数字段采用下划线命名规则,不存在驼峰命名的retweetCount属性,因此触发属性缺失报错。
解决方法
- 方法1:替换为对应版本的正确属性名
将代码中的tweet.retweetCount修改为tweet.retweet_count即可正常运行,修改后的完整代码如下:
import snscrape.modules.twitter as sntwitter keyword = '(COVID19)' tdf = None for i, tweet in enumerate(sntwitter.TwitterSearchScraper(keyword + ' since:2021-08-01 lang:pt').get_items()) : if i > 50: break print(tweet.date.date()) print(tweet.retweet_count) print(tweet.renderedContent)
- 方法2:增加字段兼容逻辑
部分权限受限、已删除的特殊推文可能缺失转推数字段,可增加异常捕获逻辑避免程序中断:
import snscrape.modules.twitter as sntwitter keyword = '(COVID19)' tdf = None for i, tweet in enumerate(sntwitter.TwitterSearchScraper(keyword + ' since:2021-08-01 lang:pt').get_items()) : if i > 50: break print(tweet.date.date()) # 兼容字段缺失场景 try: print(tweet.retweet_count) except AttributeError: print(0) print(tweet.renderedContent)
- 方法3:升级snscrape版本适配驼峰命名
如果你需要使用retweetCount驼峰格式的属性,可将snscrape升级到0.4.0及以上版本,执行命令:pip install --upgrade snscrape
升级后无需修改原有属性名即可正常运行。
提示:如果修改后仍然报错,可在循环中添加
print(dir(tweet))打印当前Tweet对象的所有属性,确认对应字段的正确命名。
内容的提问来源于stack exchange,提问作者Jean-Michel Grilly
相关产品推荐
相关产品推荐

