首页 > 解决方案 > 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'

有人可以帮我吗

标签: pythonpython-3.x

解决方案


如果您在字符串上调用它,则参数 tostrip必须是一个对象。bytesbytes

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

要么在你面前剥离它encode

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

推荐阅读