Как решить эту проблему TypeError в python3?«TypeError: требуется байтоподобный объект, а не 'str'" - PullRequest
0 голосов
/ 01 июня 2019

Недавно я перешел с python2.7 на python3.7.3. В моем проекте очень часто встречается эта ошибка типа."TypeError: a bytes-like object is required, not 'str'".Я хочу определить это только как строку.Я прочитал, чтобы кодировать объекты str в одном из постов.но выдает ошибку типа «передать аргументы для encode ()», она не работает.Есть ли какое-то постоянное решение для этого?например, импорт или определение чего-либо только в начале.

Спасибо.Мой код выглядит следующим образом.

ids = [1,2,3,4,5]
list_ = ['A','B','X','Y','Z','W']
df = [None for i in ids]
print(type(df))

TypeError: требуется байтоподобный объект, а не 'str'

1 Ответ

0 голосов
/ 01 июня 2019

Если вы хотите преобразовать строковый объект в байтовый объект, вы должны что-то сделать как это

st = "Roushan" #  a string object
byte_object = st.encode('utf-8')

здесь byte_object - фактический объект, а utf-8 - схема кодирования. Есть много схем кодирования
ASCII
UTF-16

Подробнее о типах кодировки Кодировка


После этого просто выясните, какой аргумент необходимо было передать как байт вместо str, и измените этот объект на байт.
Поскольку в моей системе не установлен модуль nk, я оставляю это вам



РЕДАКТИРОВАТЬ:
open a fresh new empty python file
напишите следующий код

ids = [1,2,3,4,5]
list_ = ['A','B','X','Y','Z','W']
df = [None for i in ids]
print(type(df))


откройте терминал и выполните
python2.7 mycode.py
python3.7 mycode.py

в случае 1 вы получаете в случае 2



и, пожалуйста, опубликуйте сообщение об ошибке. Я считаю, что ошибка возникает в другой части кода, так как этот в порядке

...