python - Python 3 移植问题,说需要一个类似字节的对象?
问题描述
我正在尝试将 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'
有人可以帮我吗
解决方案
如果您在字符串上调用它,则参数 tostrip
必须是一个对象。bytes
bytes
zones = [i.encode("ascii", "ignore").strip(b" \"\'")
# ^
要么在你面前剥离它encode
:
zones = [i.strip(" \"\'").encode("ascii", "ignore")