2017-07-25 4 views
0

Bonjour, j'essaie d'apprendre la programmation pour un projet.Comment puis-je corriger cette erreur de syntaxe pour un script tweepy?

J'ai travaillé sur un script simple (en utilisant tweepy) pour télécharger des tweets à partir d'une recherche d'un mot-clé dans un format .csv. Cependant, je continue à obtenir une erreur de sintax dans plusieurs lignes (de 28 à 38) et je ne sais pas ce qui ne va pas en ce moment, quelqu'un peut-il me dire ce qui ne va pas?

est ici le code que je travaille sur ...

# -*- coding: utf-8 -*- 
#import modules 
import tweepy 
from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 
import unicodecsv 
from unidecode import unidecode 
import csv 

from textblob import TextBlob 

ckey = "XXXXXXXXXXXXXXXXXX" 
csecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
atoken = "XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXX" 
asecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 

OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret, 'access_token_key':atoken, 'access_token_secret':asecret} 
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret']) 
api = tweepy.API(auth) 
fName= raw_input("Nombre del Archivo: ")+'.csv' 

for tweet in tweepy.Cursor(api.search, q=('dulceveneno'), since='2014-09-16', until='2017-07-25').items(5): 

    tweet_info = [tweet.author.name.encode('utf8') 
       tweet.author.screen_name.encode('utf8') 
       tweet.created_at 
       tweet.text.encode('utf8') 
       tweet.retweeted 
       tweet.favorited 
       tweet.user.location.encode('utf8') 
       tweet.user.time_zone 
       tweet.geo 
       tweet.entities.get('hashtags')] 

    with open(fName, 'wb') as file: 
     writer = unicodecsv.writer(file, delimiter = ',', quotechar = '"') 
     # Write header row. 
     writer.writerow(["Nombre", 
         "UserName", 
         "Fecha", 
         "Tweet", 
         "Retweet?" 
         "Favs" 
         "Ubicación", 
         "Horario", 
         "Geo", 
         "Hashtags"]) 


      # Write data to CSV. 
      writer.writerow(tweet_info) 


     # Show progress. 
     print("DONE!" % q) 

le problème est dans la partie « tweet_info » je suppose ...

+0

Pouvez-vous s'il vous plaît poster le message log/erreur? –

+0

il suffit de mettre en évidence cette partie et dit qu'il y a une erreur de syntaxe dans mon programme –

Répondre

0

Vous avez pas posté l'erreur réelle encore, mais je peux voir pour tweet_info vous n'avez pas de virgules , pour les éléments de la liste.

Il devrait être:

tweet_info = [tweet.author.name.encode('utf8'), 
      tweet.author.screen_name.encode('utf8'), 
      tweet.created_at, 
      tweet.text.encode('utf8'), 
      tweet.retweeted, 
      tweet.favorited, 
      tweet.user.location.encode('utf8'), 
      tweet.user.time_zone, 
      tweet.geo, 
      tweet.entities.get('hashtags')] 
+0

OH! Je le vois maintenant, MERCI !!!! –

+0

Marquer la question comme répondue si cela a fonctionné – MrJLP