我正在尝试将python2代码移植到python 3。

以下代码在python 2中正常工作

                   zones = [i.encode("ascii", "ignore").strip(" \"\'")
                           for i in resque_zone]


但是在Python 3中,这给了我著名的“需要一个类似字节的对象,而不是str”

line 194, in <listcomp>
    for i in resque_zone]
TypeError: a bytes-like object is required, not 'str'


有人可以帮我吗

最佳答案

如果要在strip字符串上调用,则bytes的参数必须是bytes对象。

zones = [i.encode("ascii", "ignore").strip(b" \"\'")
#                                          ^


或者在您encode之前剥离它:

zones = [i.strip(" \"\'").encode("ascii", "ignore")

关于python - Python 3移植问题,说需要一个类似字节的对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54778543/

10-09 18:51
查看更多