TypeError: объект 'int' не повторяется в Python Twitter API - PullRequest
0 голосов
/ 28 марта 2019

Я извлекаю текст, имя_экранов, хэштеги, количество подписчиков и т. Д. Из твитов с помощью библиотеки Twitter.

У меня нет проблем с получением screen_name, hashtags и text, потому что они все строки.

Как извлечь число подписчиков, являющееся объектом int, и сохранить их в формате списка?

status_texts = [status['text']
                for status in statuses]
screen_names = [user_mention['screen_name']
                for status in statuses
                    for user_mention in status['entities']['user_mentions']]
followers = [user['followers_count']
            for status in statuses
                for user in status['user']['followers_count']]

Результат первых двух кодов

["RT @ESPNStatsInfo: Seven of the NBA's top 10 all-time leading scorers never had back-to-back 50-point games. \n\nKareem Abdul-Jabbar\nKarl Mal…", 'RT @kirkgoldsberry: The game has changed. Rookie LeBron versus Doncic"]
['ESPNStatsInfo', 'kirkgoldsberry', 'ESPNStatsInfo', 'warriors', 'MT_Prxphet', 'Verzilix', 'BleacherReport']

Мой ожидаемый результат

[10930,13213,15322,8795,9328,23519]

Но когда я пытаюсь извлечь число подписчиков и сохранить их в формате списка, возвращается TypeError: 'int' object is not iterable.Я знаю, что получаю эту ошибку, потому что результат follower_counts в целых числах, и я не могу использовать for с целым числом.

В этом случае мне нужно конвертировать int в str?или мне нужно использовать range?

Я знаю, что использование tweepy гораздо более простой способ, но я хочу использовать twitter first

1 Ответ

0 голосов
/ 28 марта 2019

Поэтому я ожидаю, что словарь, представляющий ответ json от вашего вызова API, будет называться jsonResponse.

Таким образом, вы уже знаете, что вы можете получить каждый твит, выполнив statuses = jsonResponse['statuses']. (Я ожидаю, что ваши statuses будут такими же.)

Оттуда, я предполагаю, что вы хотите список количества подписчиков для каждого твита. Таким образом, для статуса в статусах, вы хотите, чтобы число подписчиков. Что в python выглядит просто так:

followers_counts = [status['user']['followers_count'] for status in statuses]

Другой способ - отобразить список statuses:

followers_count = map(lambda status: status['user']['followers_count'], statuses)

С помощью map вы можете еще проще создать словарь нужной вам информации для каждого твита. Но это бы выглядело как json, который вы уже получили из API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...