首页 > 解决方案 > Python - Tweepy - 列表引用问题

问题描述

首先解释一下这个脚本的过程:

  1. 使用所有英国工党议员的公开名单,我正在创建他们的网名列表(命名为screen_names:)

  2. 然后我试图浏览该列表,并提取这些用户的最后 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

标签: pythonlisttweepy

解决方案


在python中,其实有很多种for循环。你使用的是一个for obj in list循环。我相信你打算使用for i in range(len(screen_names)) So 在这种情况下,print(f"{user.screen_name}")最有可能抛出错误。因此,您要么想要打印出来,i因为这是列表中的值作为循环签名中构造的引用,或者在循环签名中替换iuser

希望这可以帮助。


推荐阅读