Python re.sub()和unicode

Python re.sub()和unicode,python,unicode,Python,Unicode,我觉得这是一个非常基本的问题,但就我的一生而言,我无法理解 我有一大堆的文字,我正在阅读并转换成国际音标。我经常使用re.sub()方法,在许多情况下,这意味着将字符串类型的字符替换为unicode类型的字符。例如: for row in responsesIPA: re.sub("3", u"\u0259", row) 我得到TypeError:需要字符串或缓冲区。Python上的文档重申,替换的类型必须与您正在搜索的类型相匹配,所以这可能就是问题所在?我尝试将str()放在u“\u02

我觉得这是一个非常基本的问题,但就我的一生而言,我无法理解

我有一大堆的文字,我正在阅读并转换成国际音标。我经常使用re.sub()方法,在许多情况下,这意味着将字符串类型的字符替换为unicode类型的字符。例如:

for row in responsesIPA:
  re.sub("3", u"\u0259", row)

我得到TypeError:需要字符串或缓冲区。Python上的文档重申,替换的类型必须与您正在搜索的类型相匹配,所以这可能就是问题所在?我尝试将str()放在u“\u0259”的周围,但仍然出现类型错误。有什么方法可以替换吗?

您收到的错误告诉您“行”不是有效的字符串或缓冲区(str、字节、unicode、任何可读的内容),您需要通过在前面添加一个
打印(行)
来重新检查行中存储的内容

为了证明这一点,这样做会奏效:

import re
print(re.sub("3", u"\u0259", "12345"))
对每个“行”都来自一个.csv文件,我没有意识到我必须将它们转换成字符串。成功了-谢谢你!