Python re.sub()和unicode

时间:2017-04-21 01:04:58

标签: python unicode

我觉得我觉得这是一个非常基本的问题,但对于我的生活,我无法弄明白。

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

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

我得到TypeError:期望的字符串或缓冲区。关于Python的文档说,替换的类型必须与您正在搜索的类型相匹配,那么问题可能就是这样吗?我尝试将str()放在u" \ u0259"周围,但我仍然遇到类型错误。我有办法替换这个吗?

1 个答案:

答案 0 :(得分:1)

你得到的错误告诉你“行”不是有效的字符串或缓冲区(str,bytes,unicode,任何可读的东西),你需要仔细检查是什么< / em>通过在前面添加print(row)存储在中。

只是为了证明这种情况,这样做会起作用:

import re
print(re.sub("3", u"\u0259", "12345"))