Python - Tweepy - проблема со ссылками на список - PullRequest
0 голосов
/ 07 октября 2018

Во-первых, объясняя процесс этого сценария:

  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

1 Ответ

0 голосов
/ 07 октября 2018

В python существует множество циклов for.То, что вы использовали, это цикл for obj in list.Я считаю, что вы намеревались использовать for i in range(len(screen_names)) Так что в этом случае print(f"{user.screen_name}"), скорее всего, выдаст ошибку.Поэтому вы можете либо распечатать i, поскольку это значение в списке в качестве ссылки, созданной в вашей подписи цикла, либо заменить i на user в вашей подписи цикла.

Надеюсь, что этопомогает.

...