2015-04-15 13 views
10

Sto spostando il mio bot Twitch da Python 2.7 a Python 3.5. Continuo a ricevere l'errore: a bytes like object is required not 'str' sulla seconda riga del codice qui sotto.Python - è richiesto un byte come oggetto, non 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

Vedi anche: Ned Batcheler [Pragmatico Unicode, o, Come faccio a fermare il dolore?] (Http://bit.ly/unipain) – delnan

risposta

17

provare

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

invece di

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

Penso che tu intenda "decodificare". E ovviamente lo stesso sarebbe necessario per le altre chiamate 'split', quindi la decodifica dovrebbe avvenire una volta, nella prima riga. Più la domanda se ASCII è anche la giusta codifica ... – delnan

+0

Penso che sia solo decode() e penso sia correlato a https://docs.python.org/release/3.0.1/whatsnew/3.0.html#text -vs-data-invece-of-unicode-vs-8-bit – valentin

+0

Grazie. Ho usato data = twitchdata.decode ("ascii"). Split (":") [1] e che ha funzionato – spencermehta