Ошибка говорит вам о том, что было не так - вы не можете просто передать объект Status в Writerows.
Быстрый взгляд на документ показывает, что для writerow
требуется словарь.
Итак, два пути:
with open('tweet1212.csv', 'w',encoding='utf-8') as csvfile:
fieldnames = ['info.']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
row = str(tweet.text) + str(tweet.id) + str(tweet.created_at)
writer.writerow({'info.':row})
Или вы можете изменить имена полей на fieldnames=['text', 'id','created_at']
и сделать что-то вроде write.writerow({'text':tweet.text, 'id':tweet.id, 'created_at':tweet.created_at})
Таким образом, вы будетезапись строки только каждый раз, когда вы открываете файл, поэтому я подозреваю, что вы хотите добавить a
вместо записи w
:
with open('tweet1212.csv', 'a',encoding='utf-8') as csvfile:
Дайте мне знать, если это работает/ Вам нужна дополнительная помощь!
PS Я настоятельно рекомендую использовать pandas вместо csv для создания CSV-файлов - манипулирование кадрами данных намного проще!
Edit1
Предположим, что вы получили новый твит, запустив эту функцию:
tweet = api.get_status(/id of tweet/)
затем вы можете создать список твитов, используя что-то вроде следующего:
allTweets=[];
allIDs=[1234, 1235, 1236] # a lits of id of tweets that you want to get
with open('tweet1212.csv', 'a',encoding='utf-8') as csvfile:
fieldnames = ['info.']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for ID in allIDs:
tweet = api.get_status(/id of tweet/)
row = str(tweet.text) + str(tweet.id) + str(tweet.created_at)
writer.writerow({'info.':row})
Дайте мне знать, если это работает!