XML 在 Python 中解析大数据

XML parsing in Python for big data

我正在尝试使用 Python 解析 XML 文件。但问题是 XML 文件大小约为 30GB。因此,执行需要几个小时:

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

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

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

您可以使用 ElementTree.iterparse or you could use Sax.

这是 Python 的 XML processing tutorials 页面。

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