2017-07-01 4 views
0

Ich benutze diesen Code, um den Inhalt von Live-Streams mit dem 'Text' Bezeichner, der im Grunde erfasst den tatsächlichen Tweet Text von Tweepys Streaming-Capture-Funktion erfasst. Es scheint größtenteils zu funktionieren, aber ich bekomme auch die gelegentliche "Not Working" -Nachricht als Ergebnis der Ausnahme im Code, wenn ich das Skript ausführe (es passiert vielleicht einmal alle 10 10 Sekunden oder so, wenn ich einen Begriff, der stark im Trend liegt). Die Ausgabedatei erfasst trotzdem immer noch viele Tweets. Ich habe mich gefragt, ob jemand wüsste, was diese Ausnahme verursachen könnte, da ich mir Sorgen mache, dass ich den gelegentlichen Tweet verpassen könnte.Python Tweepy gelegentliche Ausnahme während des Streams

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']) 

Antwort

1

Sie haben möglicherweise auf einen Tweet zugegriffen, der privat ist. Sie können die Ausnahme überprüfen, indem Sie Folgendes versuchen:

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

Ich bekomme die Nachricht 'f.write (datadict ['Text']) KeyError: 'Text''. Ich bin mir immer noch nicht sicher, was falsch ist, aber es funktioniert, wenn ich etwas eintippe, das kein populärer Suchbegriff ist, aber wenn ich etwas aussagendes wie "trump" als Suchbegriff schreibe, erzeugt es eine Ausnahme. Vielleicht versuchen zu viele Einträge gleichzeitig in die Datei zu schreiben? – treetop

Verwandte Themen