xml解析python中的大数据

问题描述:

我想解析使用python的XML文件。但问题是,xml文件大小约为30GB。所以,需要花费数小时才能执行:xml解析python中的大数据

tree = ET.parse('Posts.xml') 

在我的xml文件中,有数百万个根元素。有什么办法可以让它更快吗?我不需要所有的孩子解析。即使是第一个100,000也没关系。我需要的只是设置解析深度的限制。

+0

您需要在较低级别编码,但可以使用[sax解析器](https://wiki.python.org/moin/Sax)。 – mgilson 2015-01-26 22:38:54

您将需要一种不会将所有内容加载到内存中的XML解析机制。

您可以使用ElementTree.iterparse或者您可以使用Sax

以下是Python的一些XML processing tutorials的页面。

更新:正如@marbu在评论中所说的那样,如果您使用ElementTree.iterparse,请务必在您完成处理后清除内存中的元素use it in such a way

+1

如果您决定使用iterparse,请确保您不会错过关于[增量分析]的这一段(http://effbot.org/zone/element-iterparse.htm#incremental-parsing)。 – marbu 2015-01-26 22:56:25

+0

它的工作。谢谢。 – user1151324 2015-01-27 08:11:26