lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding?

问题描述 投票:0回答:1

我有一个包含 200 万个观察值的 xml 文件,我想将其转换为 csv,但出现以下错误。

File "src\lxml\parser.pxi", line 609, in lxml.etree._ParserContext._handleParseResult File "src\lxml\parser.pxi", line 618, in lxml.etree._ParserContext._handleParseResultDoc File "src\lxml\parser.pxi", line 728, in lxml.etree._handleParseResult File "src\lxml\parser.pxi", line 657, in lxml.etree._raiseParseError File "input/stackoverflow.com/Posts.xml", line 9 lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding ! Bytes: 0xFC 0x74 0xFC 0x70, line 9, column 360

我已经包含了 encoding= "utf-8" 但我不确定这个错误的来源是什么。有人可以帮忙吗?

我也尝试了下面的代码,它给了我类似的编码错误。

from lxml import etree
parser = etree.XMLParser(recover=True)
etree.fromstring(filename, parser=parser)

error: xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 9, column 359
xml utf-8 stack-overflow
1个回答
0
投票

我能够通过添加 encoding= 'latin1' 并稍微更改我的代码来消除该错误。

context = etree.iterparse(sourcefilename, events=('end',), tag='row',encoding= "latin1"

然而,我面临另一个问题

lxml.etree.XMLSyntaxError:xmlParseEntityRef:无名称,第 26451 行,第 2887 列

显然是因为有一些无效字符,我不知道该如何替换它们。

© www.soinside.com 2019 - 2024. All rights reserved.