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
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.
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.
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.
try
data = twitchdata.decode().split(":")[1]
instead of
data = twitchdata.split(":")[1]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With