我觉得我觉得这是一个非常基本的问题,但对于我的生活,我无法弄明白。
我有一大堆文字,我正在翻译并转换为国际音标。我经常使用re.sub()方法,在很多情况下,这意味着用unicode类型的字符替换字符串类型的字符。例如:
for row in responsesIPA:
re.sub("3", u"\u0259", row)
我得到TypeError:期望的字符串或缓冲区。关于Python的文档说,替换的类型必须与您正在搜索的类型相匹配,那么问题可能就是这样吗?我尝试将str()放在u" \ u0259"周围,但我仍然遇到类型错误。我有办法替换这个吗?
答案 0 :(得分:1)
你得到的错误告诉你“行”不是有效的字符串或缓冲区(str,bytes,unicode,任何可读的东西),你需要仔细检查是什么< / em>通过在前面添加print(row)
存储在行中。
只是为了证明这种情况,这样做会起作用:
import re
print(re.sub("3", u"\u0259", "12345"))