2017-06-16 3 views
1

Dieser Code soll nach Tweets mit einem bestimmten Schlüsselwort suchen und die relevantesten Tweets extrahieren, die mit den Schlüsselwörtern in meiner CSV-Datei übereinstimmen.Attribut Fehler tritt jedes Mal auf, wenn ich versuche, nur den Tweet mit Tweepy zu extrahieren?

import tweepy 
from tweepy.streaming import StreamListener 
from tweepy import OAuthHandler 
from tweepy import Stream 
import pandas as pd 
import nltk 

def tokened(a): 
    return nltk.word_tokenize(a) 
i=0 
j=0 
doc = pd.read_csv('Finder.csv') 

#consumer key, consumer secret, access token, access secret. 
ckey="nothing" 
csecret="nothing" 
atoken="nothing" 
asecret="nothing" 
class listener(StreamListener): 

     def on_data(self, status): 

       k=(status.text) 
       z=tokened(k) 
       for txt in z: 

        for txt2 in doc['NEET'][j]: 
         j=j+1 
         if (txt.upper().lower() == 'RT'): 
          break 
         elif (txt.upper().lower() == txt2.upper().lower()): 
          api.update_status("Try", 
in_reply_to_status_id=status.id) 
          print(status.text) 



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

auth=OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 
api = tweepy.API(auth) 



twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=['Neet']) 

Ich erhalte diese Fehler die ganze Zeit:

k=(status.text) AttributeError: 'str' object has no attribute 'text'

Der Hauptfehler ist in k=(status.text):

AttributeError: 'str' object has no attribute 'text' 
+1

Ich schlage vor, Sie Frage erneut veröffentlichen Sie geheime Daten zu speichern. Entfernen Sie alle sensiblen Informationen –

+0

Nun, es sagt Ihnen, was das Problem ist, nein? 'status' ist eine Zeichenkette, so dass Sie' status.text' nicht ausführen können. Es ist bereits der Text – patrick

Antwort

0

status eine Zeichenfolge im JSON-Format ist, auf seine Elemente zugreifen Sie haben um es mit dem json Modul zu entschlüsseln.

Statt:

k=(status.text) 

Sie tun sollten:

k = json.loads(status)['text'] 
+0

Danke Mann. Nun bekomme ich diesen Fehler '' für txt2 in doc ['NEET'] [j]: UnboundLocalError: lokale Variable 'j' referenziert vor der Zuweisung '' – Kumar

+0

Ja, du musst zuerst 'j' einen Wert geben, vielleicht 0 Aber was hast du vor '' für txt2 in doc ['NEET'] [j] '? Weil Sie scheinen, den Iterator innerhalb seiner eigenen Schleife zu ändern. Der Zweck ist nicht klar. – lukess

+0

Ja, dieser Fehler ist jetzt behoben. Ich bekomme das jetzt "** tweepy.error.TweepError: Erwartete Länge, unerwarteter Wert gefunden **". Hast du eine Ahnung davon? – Kumar

Verwandte Themen