2015-04-15 9 views
10

Ich bewege meinen Twitch Bot von Python 2.7 nach Python 3.5. Ich bekomme immer den Fehler: a bytes like object is required not 'str' in der 2. Zeile des Codes unten.Python - ein Byte ähnliches Objekt ist erforderlich, nicht str

twitchdata = irc.recv(1204) 
    data = twitchdata.split(":")[1] 
    twitchuser = data.split("!")[0] 
    twitchmsg = twitchdata.split(":")[2] 
    chat = str(twitchuser) +": "+ str(twitchmsg) 
    print(chat) #prints chat to console 
+0

Siehe auch: Ned Batcheler des [Pragmatische Unicode, oder, Wie kann ich den Schmerz stoppen?] (Http://bit.ly/unipain) – delnan

Antwort

17

versuchen

data = twitchdata.decode().split(":")[1] 

statt

data = twitchdata.split(":")[1] 
+0

Ich denke du meinst 'decode'. Und natürlich würde das Gleiche für die anderen "Split" -Rufe benötigt werden, so dass die Decodierung einmal in der ersten Zeile stattfinden sollte. Plus die Frage, ob ASCII ist sogar die richtige Codierung ... – delnan

+0

Ich denke, ist nur decode() und ich denke, ist verwandt mit https://docs.python.org/release/3.0.1/whatsnew/3.0.html#text -vs-data-statt-von-unicode-vs-8-bit – valentin

+0

Danke. Ich benutzte Daten = twitchdata.decode ("ascii"). Split (":") [1] und das funktionierte – spencermehta