gpt4 book ai didi

python - ElementTree中fromstring函数的上限

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:27 26 4
gpt4 key购买 nike

我在 Windows 32 位 PC 上使用 Python 2.4 版本。我正在尝试使用 ElementTree 模块解析一个非常大的 XML 文件。我从 effbot.org 下载了该模块的 1.2.6 版本。

为了我的目的,我遵循了以下代码:

import elementtree.ElementTree as ET

input = ''' 001 Chuck 009 Brent '''
stuff = ET.fromstring(input)
lst = stuff.findall("users/user")
print len(lst)

for item in lst:
print item.attrib["x"]

item = lst[0]
ET.dump(item)
item.get("x") # get works on attributes
item.find("id").text
item.find("id").tag

for user in stuff.getiterator('user'):
print "User" , user.attrib["x"]

ET.dump(user)

如果输入的内容太大,超过 10,000 行,fromstring 函数会引发错误(如下)。谁能帮我纠正这个错误?

这是生成的错误:

Traceback (most recent call last): File "C:\Documents and Settings\hariprar\My Documents\My files\Python Try\xml_try1.py", line 16, in -toplevel- stuff = ET.fromstring(input) File "C:\Python24\Lib\site-packages\elementtree\ElementTree.py", line 1012, in XML return api.fromstring(text) File "C:\Python24\Lib\site-packages\elementtree\ElementTree.py", line 182, in fromstring parser.feed(text) File "C:\Python24\Lib\site-packages\elementtree\ElementTree.py", line 1292, in feed self._parser.Parse(data, 0) ExpatError: not well-formed (invalid token): line 2445, column 39

最佳答案

看一下 iterparse 函数。它将让您增量地解析输入,而不是将其作为一大块读入内存。

此处描述:http://effbot.org/zone/element-iterparse.htm

关于python - ElementTree中fromstring函数的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com