python - 使用 Python 从 xml 数据库中删除非 Unicode 字符

标签 python python-3.x unicode

所以我有一个 9000 行的 xml 数据库,保存为 txt,我想在 python 中加载它,所以我可以做一些格式化并删除不需要的标签(我只需要一些标签,但是有很多不必要的信息)以使其可读。但是,我得到一个 UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 608814: character maps to <undefined> ,我认为这意味着程序遇到了非 Unicode 字符。我很确定这些字符对程序并不重要(我要查找的数据都是纯文本,没有特殊符号),所以当我无法读取时,如何从 txt 文件中删除所有这些字符没有得到 UnicodeDecodeError 的文件?

最佳答案

一个粗略的解决方法是自己解码文件中的字节并指定错误处理。例如:

for line in somefile:
    uline = line.decode('ascii', errors='ignore')

这会将行变成一个 Unicode 对象,其中任何非 ascii 字节都已被删除。这不是通常推荐的方法 - 理想情况下,您希望使用适当的解析器处理 XML,或者至少知道您的文件的编码并适本地打开它(具体细节取决于您的 Python 版本)。但是,如果您完全确定自己只关心 ascii 字符,那么这是一个简单的回退。

关于python - 使用 Python 从 xml 数据库中删除非 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29503356/

相关文章:

python - 排列不起作用

python - python中最快的成对距离度量

python - 通过计算传播 NaN

python-3.x - 是否有办法刷新 csv 文件的数据而不实际关闭它?

string - 将未转义的 unicode 转换为 utf8 整数

python - 删除一行 Pandas 数据框中的重复值

python - 没有/<id> 的请求中不允许使用 PUT 方法

python - 如果字符串仅包含来自特定代码页的字符,如何检查 python?

python - 将 Python 转义的 Unicode 序列转换为 UTF-8

php - MySQL 中的希腊字符搜索功能