Python (с Tweetpy) просматривает архив твитов и выполняет действия с каждым - PullRequest
0 голосов
/ 19 января 2019

Я хочу просмотреть все твиты в архиве твитов .csv, загруженном из твиттера, и выполнить действия с каждым из них, но я получаю сообщения об ошибках типа:

Файл "AppData \ Local \ Programs \ Python \ Python36 \ tweetp \ tweetp.py", строка 39, в следующий (читатель, нет)

Файл "AppData \ Local \ Programs \ Python \ Python36 \ lib \ encodings \ cp1257.py", строка 23, в декодировании возвращение codecs.charmap_decode (входные данные, собственные ошибки, decoding_table) [0]

UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x9f в позиции 782: символ отображается в

И я изо всех сил пытаюсь понять это. Что делает невозможным чтение файлов .csv и как я могу заставить его работать? Вот фрагмент кода, где все разваливается:

with open(tweets_csv, 'r') as f:
  reader = csv.reader(f)

  # Skip header
  next(reader, None)

  # Convert CSV to list
  tweets_list = list(reader)

for tweet in tweets_list:
    # tweet[0] is the tweet_id column
    tweet_id = tweet[0]
    print('[ - ] tweet with id %s' %(tweet_id))

1 Ответ

0 голосов
/ 20 января 2019

Попробуйте использовать pandas.read_csv . Это будет читать ваш CSV-файл в кадре данных.

Pass squeeze в параметрах - true, и передается только один столбец. Вот хороший учебник

# Import pandas 
import pandas as pd

# make the passed column as index instead of 0, 1, 2, 3....
# below will print the values under the header 'tweets_column_title'
df = pd.read_csv('path_to_tweets_csv_file.csv', index_col = 'tweets_column_title', squeeze=True)

for i in df.iterrows(): 
    print(i[0])         # You can then simply extract each message like this.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...