2017-12-09 5 views
0

Ich habe begonnen, indem Sie Tweepy und bekam ein Programm, das in der Lage ist, eine korrekte Ausgabe mit einem ausgeben Suchparameter, während ich versuchte, ein Programm zu erstellen, das eine Personenzeitachse für die Datenanalyse speichern und speichern kann, stieß ich auf einen TypeError: muss str sein, nicht ResultSet.Erstellen eines Programms zum Speichern aller Tweets von einer Seite in einer Textdatei für die Analyse gespeichert werden, jedoch TypeErrors

import tweepy 

#API keys access 
auth = tweepy.OAuthHandler("", "") 
auth.set_access_token("", "") 
client = tweepy.API(auth) 

#Opening a file with the name of the user wanted 
screen = input("Enter the screen name: ") 
filename = (screen+".txt") 
file = open(filename, "w") 

#Getting the Users time line 
user = client.get_user(screen_name=screen) 
timeline = user.timeline() 



#Writing new found data to the file. 
file.write(timeline) 
file.close() 

Dieser Code hält auf den Fehler spuckt:

Traceback (most recent call last): 
    File "GetTimeLine.py", line 20, in <module> 
    file.write(timeline) 
TypeError: must be str, not ResultSet 

jedoch für die eingestellte Linie:

file.write(timeline) 

ich hinzufügen, wo ich es will str durch den Benutzer von

werden
file.write(str(timeline)) 

Auswerfen a n ganz anderer Fehler.

Traceback (most recent call last): 
    File "GetTimeLine.py", line 20, in <module> 
    file.write(str(timeline)) 
    File "C:\Program Files (x86)\Python\lib\encodings\cp1252.py", line 19, in encode 
    return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode characters in position 4122-4123: character maps to <undefined> 

Um zu versuchen, dieses Problem behebt ich hinzufügen versucht. (Codieren „utf-8“) aber ohne Glück. Jede Hilfe sehr geschätzt.

Antwort

0

die Sie interessieren, suchte ich nach wie ResultSet Zeichenfolge zu konvertieren und fand diese

unicode.join(u'\n',map(unicode,result)) 

Here „Ergebnis“ Ihre „Timeline“ ist variabel, setzen Sie es einfach und Sie werden es bekommen Zeichenfolgenformat Doing einfach str (Timeline) wird es nicht codieren, deshalb erhalten Sie einen weiteren Fehler.

Probieren Sie es einfach :) Prost

+0

Hallo, versuchte dies und es hat mich weiter als zuvor, es aber jetzt kommt mit einem separaten, Nameerror up: name ‚Unicode‘ nicht definiert ist ?? – scoob761

+0

Sie erhalten diesen Fehler, weil Sie Ihren Code in Python 3 ausführen. In Python 3 wird Unicode durch str ersetzt. Also im Code einfach "str" ​​anstelle von "unicode" setzen. Wie folgt str.join (u '\ n', map (str, result) ... und diesen Link auch "https://stackoverflow.com/questions/7782772/how-to-convert-beautifulsoup-resultset-to-string " –

+0

Vielen Dank für die Antwort Ich habe versucht, den Code Timeline = str.join (u '\ n;, Karte (str, Timeline)) jedoch hinzuzufügen, dies wirft den Fehler von UniCodeEncodeError zurück: 'charmap' kann Zeichen in Position xxxx-xxxx nicht codieren, es variiert jedes Mal, wenn ich den Code die zwei Zahlen ausführe? Ich habe versucht, die Ausgabe in der Schreibleitung auf file.write (str (timeline)) auch mit wenig Glück – scoob761

Verwandte Themen