2015-04-15 2 views
10

Я перемещаю свой бот с Twitch от Python 2.7 до Python 3.5. Я продолжаю получать ошибку: a bytes like object is required not 'str' на второй строке приведенного ниже кода.Python - требуется объект размером в байтах, а не 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

Смотрите также: [Прагматичный Unicode, или Как остановить боль?] Неда Batcheler (в http://bit.ly/unipain) – delnan

ответ

17

попробовать

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

вместо

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

Я думаю, вы имеете в виду 'decode'. И, конечно же, это было бы необходимо для других вызовов «split», поэтому декодирование должно происходить один раз, в первой строке. Плюс вопрос, если ASCII - это даже правильная кодировка ... – delnan

+0

Я думаю, что это только decode(), и я думаю, что это связано с https://docs.python.org/release/3.0.1/whatsnew/3.0.html#text -vs-data-вместо-unicode-vs-8-bit – valentin

+0

Спасибо. Я использовал data = twitchdata.decode («ascii»). Split («:») [1], и это сработало – spencermehta

Смежные вопросы