解析大型XML时如何解决OverflowError?

时间:2017-09-28 15:18:42

标签: xml python-3.x parsing xml-parsing elementtree

我正在尝试使用ElementTree Python包解析XML文件。但是,我得到OverflowError,可能是因为XML很大(~2GB)。我确实看到这个问题被问到before。答案主要表明可能使用的是32位Python。但我的当然是64位,因为它也会在我启动翻译时报告。

以下是我运行的代码行:

import xml.etree.ElementTree as ET
xmlPath = os.path.join(codePath, 'data', 'nonmeta', name + '.xml')
xml_data = open(xmlPath, encoding="utf8").read()
root = ET.XML(xml_data)

最后一行产生以下异常:

  

文件" C:\ ProgramData \ Anaconda3 \ lib \ xml \ etree \ ElementTree.py",第1314行,   XML       parser.feed(文本)

     

OverflowError:size不适合int

我在Python 3.6.0上使用Windows 7,使用IPython 5.1.0作为解释器。有关解析数据可以做什么而不会出现此错误的任何建议?

编辑:为什么我认为它不是32位问题 操作系统是Windows 7.查看计算机属性时,它显示:

  

系统类型:64位操作系统

当我使用Spyder启动我的Ipython解释器时,启动消息说:

  

Python 3.6.0 | Anaconda 4.3.1(64位)| (默认,2016年12月23日,   11:57:41)[MSC v.1900 64 bit(AMD64)] Type" copyright"," credits"要么   "许可证"了解更多信息。

     

IPython 5.1.0 - 增强的交互式Python。

0 个答案:

没有答案