Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - a bytes like object is required, not str

I'm moving my Twitch bot from Python 2.7 to Python 3.5. I keep getting the error: a bytes like object is required not 'str' on the 2nd line of the code below.

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 
like image 239
spencermehta Avatar asked Apr 15 '15 06:04

spencermehta


People also ask

How do you fix a bytes-like an object is required not str?

Binary files are considered a series of bytes data and not as a string. It means that all data read from the file is returned as bytes objects, not str. We can solve this error by opening the file in read-only mode instead of binary mode, as shown below.

What is a bytes-like object in Python?

Bytes-like object in python In Python, a string object is a series of characters that make a string. In the same manner, a byte object is a sequence of bits/bytes that represent data. Strings are human-readable while bytes are computer-readable. Data is converted into byte form before it is stored on a computer.

How do you encode a byte in Python?

We can use the built-in Bytes class in Python to convert a string to bytes: simply pass the string as the first input of the constructor of the Bytes class and then pass the encoding as the second argument. Printing the object shows a user-friendly textual representation, but the data contained in it is​ in bytes.


1 Answers

try

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

instead of

data = twitchdata.split(":")[1] 
like image 106
valentin Avatar answered Sep 28 '22 00:09

valentin