2016-03-28 4 views
1

Ich habe ein bißchen Code für meinen Raspberry Pi geschrieben, um alle Leute, denen ein Twitter-Benutzer folgt, in eine Liste zu konvertieren und diese Liste mit einer CSV-Datei füllen zu lassen . Ich habe meistens mein Ziel erreicht, aber mein Problem ist jetzt, dass Python jedes Zeichen der Benutzernamen der nachfolgenden Benutzer in eine separate Spalte stellt! Ich habe es seit einer Stunde gegooglet, aber ich fühle, dass mir die richtigen Suchbegriffe fehlen!Liste der Benutzer wird in CSV-Datei in einzelne Zeichen aufgeteilt

Hier sind die relevanten Teile des Codes Ich schrieb:

userList = [] 

while True: 
    try: 
     user = next(users) 
    except tweepy.TweepError: 
     print('Twitter request restriction: within less than 15min of last request') 
     time.sleep(60*15) 
     user = next(users) 
    except StopIteration: 
     break 
    userList.append(user.screen_name) 

resultFile = open(filename,'wb') 

wr = csv.writer(resultFile, dialect='excel') 

for item in userList: 
    wr.writerow(item) 

Und hier ist der Ausgang:

Screenshot of CSV file

nicht ganz sicher, was ich falsch hier tue, also danke im Voraus für jede Hilfe!

+0

Hallo Gwenn und willkommen bei Stackoverflow! Toller erster Beitrag übrigens. Was zielst du? Ich denke, eine Benutzerausgabe pro Zeile ist das richtig? –

+0

Hallo, danke! Ja, das stimmt: Eine Benutzerausgabe pro Zeile. Die CSV-Ausgabe wird in IBMs i2 Analyst's Notebook verwendet, um Netzwerkkarten zu erstellen! –

Antwort

1

writerow() nimmt eine iterable und schreibt jedes Element dieser iterable als CSV "Zelle". Sie übergeben eine Zeichenfolge an ihn, und diese Zeichenfolge iteriert über ihre Zeichen - daher erhalten Sie ein Zeichen pro Zelle.

Legen Sie einfach die Zeichenfolge in einer Liste:

for item in userList: 
    wr.writerow([item]) 

Streng genommen (und es sei denn, Ihre Benutzernamen Sonderzeichen wie Anführungszeichen oder Kommas enthalten kann), können Sie nicht wirklich brauchen, die verwenden csv Modul, da Ihre Datei nur eine Spalte hat, also nichts durch Kommas zu trennen ist

+0

Brilliant! Es funktionierte! Danke Tim! –

Verwandte Themen