所以我有一个很多名字的数据库。名称中包含错误的字符。例如,记录中的名称为José Florés
我想清理它以获得José Florés
我尝试了以下
name = " José Florés "
print(name.encode('iso-8859-1',errors='ignore').decode('utf8',errors='backslashreplace')
输出将姓氏弄乱到
' José Flor\\xe9s '
解决此问题的最佳方法是什么?名称可以具有任何类型的unicode或十六进制转义序列。
最佳答案
ftfy是一个python库,它使用名为fix_text
的函数修复以不同方式破坏的unicode文本。
from ftfy import fix_text
def convert_iso_name_to_string(name):
result = []
for word in name.split():
result.append(fix_text(word))
return ' '.join(result)
name = "José Florés"
assert convert_iso_name_to_string(name) == "José Florés"
使用
fix_text
方法可以对名称进行标准化,这是解决问题的另一种方法。