python - 在python中解码错误的转义字符
问题描述
所以我有一个有很多名字的数据库。名字有坏字符。例如,记录中的一个名字是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 或 hex 转义序列。
解决方案
ftfy是一个 python 库,它使用一个名为fix_text
.
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
方法可以将名称标准化,这是解决问题的另一种方法。
推荐阅读
- r - 如何在 R 中的表格中找到单元格之间的百分比匹配/相似性?
- python - 连接远程数据库后,迁移报错:Errno61, Connection Refused
- mongodb - Mongodb日期字段的正确过滤器应该是什么?
- java - 如何使用 JDBC 和 SSL 连接来连接 Sybase ASE?
- php - PHP没有向phpmyadmin发送数据
- sql - 根据分组中是否有 NULL 更新列
- javascript - JavaScript 正则表达式 \s* 无法识别换行符 \n
- django - Django,在注册用户时:AttributeError:'AnonymousUser'对象没有属性'_meta'
- google-sheets - 在 Google 表格中遇到 IMPORTDATA 最大尺寸错误时,我有哪些选择?
- c++ - 使用移动语义的初始化列表顺序中的未定义行为