如何解决python3中的TypeError问题? “ TypeError:需要一个类似字节的对象,而不是'str'”

时间:2019-06-01 13:43:30

标签: python python-3.x python-2.7 unicode encoding

最近我从python2.7切换到python3.7.3,在我的项目中,经常会遇到这种typeerror。 "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 :(得分:0)

如果您希望将字符串对象转换为字节对象,则应该做一些事情 像这样

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

此处byte_object是实际对象,而'utf-8'是编码方案 有很多编码方案
ASCII码
UTF-16

有关编码类型 Encoding

的更多信息


之后,只需弄清楚需要将哪个参数作为字节而不是str传递,然后将该对象更改为byte。
由于我的系统中未安装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



并请发布错误Traceback你得到。我相信该错误是由于代码的其他部分引起的,因为这一点很好