所以我有一个很多名字的数据库。名称中包含错误的字符。例如,记录中的名称为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方法可以对名称进行标准化,这是解决问题的另一种方法。

07-24 18:04
查看更多