Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以绕过python中的UnicodeDecodeError吗?_Python_Xml_Django_Parsing_Illegal Characters - Fatal编程技术网

我可以绕过python中的UnicodeDecodeError吗?

我可以绕过python中的UnicodeDecodeError吗?,python,xml,django,parsing,illegal-characters,Python,Xml,Django,Parsing,Illegal Characters,我有一个python脚本,用于解析xml文件,并返回以下错误: UnicodeDecodeError:“charmap”编解码器无法解码位置614617中的字节0x9d:字符映射到 我很确定发生了错误,因为我试图解析的xml文档中有一些非法字符,但是我没有权限直接修复我正在读取的这个特定xml文件 我是否能够拥有它,这样这些字符就不会绊倒我的脚本,并允许它继续解析而不会出错 这是脚本的一部分,tat正在读取xml并对其进行解码: def ReadXML(self, path): self

我有一个python脚本,用于解析xml文件,并返回以下错误:

UnicodeDecodeError:“charmap”编解码器无法解码位置614617中的字节0x9d:字符映射到

我很确定发生了错误,因为我试图解析的xml文档中有一些非法字符,但是我没有权限直接修复我正在读取的这个特定xml文件

我是否能够拥有它,这样这些字符就不会绊倒我的脚本,并允许它继续解析而不会出错

这是脚本的一部分,tat正在读取xml并对其进行解码:

def ReadXML(self, path):
    self.logger.info("Reading XML from %s" % path)
    codec = "Windows-1252"
    xmlReader = open(path, "r")
    return xmlReader.read().decode(codec)
调用时,可以传递可选的
errors
参数。默认情况下,它被设置为
strict
(如果它发现无法解析的内容,则会引发错误),但您也可以将其设置为
replace
(将有问题的字符替换为
\ufffd
)或
ignore
(仅将有问题的字符删除)

因此,这将是:

return xmlReader.read().decode(codec, errors='ignore')
或者你选择的任何级别


更多信息可以在中找到。

我实际上刚刚尝试过:
返回xmlReader.read().decode(codec,'ignore')
,这似乎很好。这和你提到的一样吗?@bigmike7801:如果你看一下,你会发现第二个位置参数是
errors
,所以是的,它是一样的。总是鼓励阅读文档。错误是发生在xmlReader中还是发生在您自己的代码中?