a bytes-like object is required,not str'怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a bytes-like object is required,not str'怎么解决?相关的知识,希望对你有一定的参考价值。

该问题主要是由于当前操作的字符串是bytes类型的字符串对象,并对该bytes类型的字符串对象进行按照str类型的操作。

如下面图所示,s 为bytes类型字符串对象。

当对s进行按照str类型的操作(split)时,会弹出一下错误提示。因为split函数传入的参数是str类型的字符串,而党鞭的s为bytes编码类型的字符串对象。

此时的解决办法是,将s转码成为str类型的或者是将对s进行str类型操作转化为对bytes类型的操作。

方法1:bytes-->str

方法2:对s进行str类型操作转化为对bytes类型的操作

由于split里面用到分解字符串中的是空格‘  ’,但是该‘ ’是按照str编码的,需要转化成为bytes类型的,然后再直接对s进行对bytes类型的操作。

参考技术A

abytes-like object is required,not str'

需要的是一个字节的对象,不是STR”

a bytes-like object is required,not str'

需要的是一个字节的对象,不是STR”

python3 TypeError: a bytes-like object is required

运行telnetlib的时候报错:TypeError: a bytes-like object is required, not ‘str’,原因是因为python2和python3的版本的差异。
在python2中可正常运行,而python3最重要的新特性也是对文本和二进制数据做了更清晰的区分。文本用unicode编码,为str类型,二进制数据则为bytes类型。

python有两种类型转换的函数encode(),decode() 。

encode(编码),可以将str类型编码为bytes。
decode(译码),可以将bytes类型转换为str类型。

技术分享图片

因此在telnetlib交互的时候需要使用encode()。

tn.read_until("username:".encode())

以上是关于a bytes-like object is required,not str'怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

python问题:TypeError: a bytes-like object is required, not 'str'

a bytes-like object is required, not 'str'怎么解决?

python 3.5: TypeError: a bytes-like object is required, not 'str'

TypeError: a bytes-like object is required, not 'str'

Python 3.5.2 TypeError: a bytes-like object is required, not 'str’问题解决方案

a bytes-like object is required,not str'怎么解决?