如何修复:类型错误:预期字符串或字节对象


使用Python时可能会遇到的错误是:

 TypeError : expected string or bytes-like object

当您尝试使用re.sub()函数替换对象中的某些模式但您正在使用的对象不完全是字符串时,通常会发生此错误。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们有以下值列表:

 #define list of values
x = [1, 'A', 2, 'B', 5, 'C', 'D', 'E']

现在假设我们尝试用空字符串替换列表中的每个非字母:

 import re

#attempt to replace each non-letter with empty string
x = re. sub (' [^a-zA-Z] ', '', x)

TypeError : expected string or bytes-like object

我们收到错误,因为列表中的某些值不是字符串。

如何修复错误

修复此错误的最简单方法是将列表包装在str()运算符中,将其转换为字符串对象:

 import re

#replace each non-letter with empty string
x = re. sub (' [^a-zA-Z] ', '', str (x))

#display results
print (x)

A B C D E

请注意,我们没有收到错误,因为我们首先使用str()将列表转换为字符串对象。

结果是原始列表,其中每个非字母都被空格替换。

注意:您可以在此处找到re.sub()函数的完整文档。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注