2017-09-18 4 views
0

J'ai besoin de votre aide, j'essaie d'exporter le data mining par tweepy vers un fichier xlsx par xlsxwriter, mais il donne une erreur. Comment puis-je résoudre?Comment exporter des données de tweepy, vers xlsx?

EDIT 1:

(une solution, par l'utilisateur Eli Lopez)

Son travaillé, mais a écrit une ligne ... Comment résoudre ce problème? Ou d'autres solutions? (Il y a beaucoup de tweets pris, je dois exporter xlsx.)

Ceci est mon code:

import json 
import csv 
import xlsxwriter 
import tweepy 
from tweepy import OAuthHandler 

consumer_key = "my_key" 
consumer_secret = "my_key" 
access_token = "my_key" 
access_token_secret = "my_key" 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
api = tweepy.API(auth) 

def tweet_to_xlsx(tweet): 
    tweet_list = [] 
    tweet_list.append([tweet.user.screen_name, tweet.text]) 
    # tweet_list.append(tweet.text) 
    workbook = xlsxwriter.Workbook('tweet.xlsx') 
    worksheet = workbook.add_worksheet() 
    row = 0 
    col = 0 
    for user, tweet in tweet_list: 
     worksheet.write(row, col, user) 
     worksheet.write(row, col + 1, tweet) 
     row += 1 
    workbook.close() 

results = api.search(q=name, lang=lang, count=tweetCount) 
for tweet in results: 
    print(tweet.user.screen_name, "Twittou:", tweet.text) 
    tweet_to_xlsx(tweet) 

Erreur:

Traceback (most recent call last): 
    File "extTwitter.py", line 113, in <module> 
    tweet_to_xlsx(tweet) 
    File "extTwitter.py", line 60, in tweet_to_xlsx 
    for user, tweet in tweet_list: 
ValueError: too many values to unpack (expected 2) 

Répondre

1

Lorsque vous apposent, vous annexant Les éléments non listes

tweet_list = [USER, TWEET USER, TWEET] 

ce que vous voulez est une liste de listes

tweet_list = [[USER, TWEET], [USER, TWEET]] 

Qu'est-ce que votre code devrait être:

tweet_list.append([tweet.user.screen_name, tweet.text]) 
# you could also use() instead of [] as tuples are faster 
+0

Merci Eli Lopez, il a travaillé, mais seulement écrit une seule ligne. Quelle serait la solution pour écrire tous les tweets capturés? –

+0

@ vic.py vous devez enregistrer tous les tweets dans une liste globale, puis vous écrivez dans un fichier Excel. Ce que vous faites écrase le fichier Excel à chaque fois. –

+0

@ vic.py, c'est parti: [Code] (https://pastebin.com/697MaykS) –