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 在完成处理后删除内存中的元素。
我正在尝试使用 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 在完成处理后删除内存中的元素。