Tweepy使用Paginator获取点赞用户时无法读取User对象id问题
Tweepy获取推文点赞用户ID无法读取属性问题解决方案
错误原因
当前分页遍历逻辑存在问题:Tweepy v2 分页器返回的每个响应对象中,实际的用户数据集存储在response.data属性下,直接遍历response对象本身拿到的不是User实例,而是响应结构中的其他元数据、关联字段内容,因此会出现打印仅输出用户名、访问id属性失败的问题。
可直接运行的修正代码
client = tweepy.Client( bearer_token=bearer_token, consumer_key=api_key, consumer_secret=api_secret, access_token=user_token, access_token_secret=user_token_secret, wait_on_rate_limit=True ) all_liking_user_ids = [] for page in tweepy.Paginator( client.get_liking_users, id=tweetid, max_results=100, limit=10, # 显式声明需要返回的用户字段,避免默认返回字段缺失 user_fields=["id", "name", "username"] ): # 当前页无数据时直接跳过 if page.data is None: continue for user in page.data: # User实例可直接通过点语法访问对应字段 print(f"ID: {user.id} | 昵称: {user.name} | 用户名: {user.username}") all_liking_user_ids.append(user.id)
避坑说明
- 所有Tweepy v2 分页接口的返回数据,实体类结果(用户、推文、列表等)都统一存放在对应分页响应的
data属性中,不要直接遍历响应对象本身 - 调用接口时显式传入
user_fields/tweet_fields等字段参数,可以避免接口默认不返回目标字段导致的属性报错 - 如果需要获取更多分页数据,调整Paginator的
limit参数即可,wait_on_rate_limit=True配置会自动处理限流等待,不需要额外写逻辑
内容的提问来源于stack exchange,提问作者Josu Gomez
相关产品推荐
相关产品推荐

