2017-07-01 4 views
0

J'utilise ce code pour capturer le contenu des flux en direct en utilisant l'identifiant 'texte' qui capture essentiellement le texte de tweet de la fonction de capture en continu Tweepys. Il semble fonctionner pour la plupart, mais je reçois aussi occasionnellement le message "Ne fonctionne pas" à la suite de l'exception dans le code lorsque je cours le script (cela arrive peut-être une fois toutes les 10 10 secondes quand je cherche un terme qui est fortement tendance). Le fichier de sortie capture encore de nombreux tweets malgré cela. Je me demandais si quelqu'un savait ce qui pourrait être à l'origine de cette exception, car je crains de ne pas avoir le tweet occasionnel à cause de cela.Python Tweepy exception occasionnelle pendant le streaming

class MyListener(StreamListener): 

    def on_data(self, data): 
     try: 
      with open('python.json', 'a') as f: 
       datadict = json.loads(data) 
       f.write(datadict['text']) 
       return True 
     except BaseException as e: 
      print("Not Working") 
     return True 

    def on_error(self, status): 
     print(status) 
     return True 

twitter_stream = Stream(auth, MyListener()) 
twitter_stream.filter(track=['Search_term_go's_here']) 

Répondre

1

Vous avez peut-être accédé à un tweet privé. Vous pouvez vérifier l'exception en essayant ceci:

except tweepy.TweepError as e: 
    print e 
    print type(e) 
    print e.__dict__ 
    print e.reason 
    print type(e.reason) 
+0

Je reçois le message 'f.write (datadict ['text']) KeyError: 'text''. Je ne suis toujours pas sûr de ce qui ne va pas, car cela fonctionne quand je tape quelque chose qui n'est pas un terme de recherche populaire, mais quand je tape quelque chose d'évocateur comme «Trump» comme terme de recherche, il génère une exception. Peut-être que trop d'entrées essaient d'écrire dans le fichier à la fois? – treetop