python - Python - Tweepy - 列表引用问题
问题描述
首先解释一下这个脚本的过程:
使用所有英国工党议员的公开名单,我正在创建他们的网名列表(命名为
screen_names
:)然后我试图浏览该列表,并提取这些用户的最后 x 条推文。
我的问题是 - 在处理i in screen_names
... 周围的列表时肯定存在问题,这意味着在我的输出中,我将有不正确的屏幕名称归因于推文。我不知道出了什么问题,下面的脚本中有一些不必要的打印来尝试找出错误是从哪里引起的。
任何帮助真的很感激 - 谢谢你:)
screen_names = []
for user in tweepy.Cursor(api.list_members, slug="uk-mps-labour", owner_screen_name="tweetminster", include_entities=True).items():
if user.screen_name not in screen_names:
screen_names.append(f"{user.screen_name}")
print(screen_names)
for i in screen_names:
print(f"{user.screen_name}")
counter = 0
try:
for status in tweepy.Cursor(api.user_timeline, screen_name=i, tweet_mode="extended").items():
if 'RT' in status.full_text:
continue
counter = counter + 1
print(f"{counter}\t{status.user.followers_count}\t{status.user.screen_name}\t{status.created_at}\t{status.id}\t{status.full_text}") f.writerow([counter, user.screen_name, status.user.followers_count, status.full_text, status.created_at, status.favorite_count, status.retweet_count, user.id])
if counter > 9:
break
except tweepy.TweepError:
systime.sleep(60 * 5)
auth = tweepy.OAuthHandler(twitter_auth.CONSUMER_KEY, twitter_auth.CONSUMER_SECRET)
auth.set_access_token(twitter_auth.ACCESS_TOKEN, twitter_auth.ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)
print("tweep error avoided: tweepy.TweepError XXX1")
continue
解决方案
在python中,其实有很多种for循环。你使用的是一个for obj in list
循环。我相信你打算使用for i in range(len(screen_names))
So 在这种情况下,print(f"{user.screen_name}")
最有可能抛出错误。因此,您要么想要打印出来,i
因为这是列表中的值作为循环签名中构造的引用,或者在循环签名中替换i
为user
。
希望这可以帮助。
推荐阅读
- css - 为什么我的 CSS 动画不能按我想要的方式工作
- azure - 尝试扩展应用服务计划时出错 扩展并更正用于 VNET 集成的应用服务计划 SKU
- vue.js - 在 VueJS 3 中从菜单打开组件
- json - 是否可以为 log4j2 记录器编写 JSON 自定义字段
- javascript - 如何使用 vuejs 让动态图片出现在 vue 中?
- flutter - 如何使用 Flutter (tflite) 在图像中执行人脸检测
- ios - 我想在我的 iPad 上导出 ofx 文件类型扩展名?有什么建议么?
- javascript - 使用 setInterval 时 setState 在 React 中不起作用
- postgresql - 当在最简单的查询中进行索引扫描时,Postgres 正在执行顺序扫描
- sql - 如果发现连续的 NULL,则将行删除到第 n 个位置