扁平化嵌套XML的Python代码会因较大(250MB)的文件而耗尽内存



我们正在尝试展平具有嵌套表的文件。我们希望所有的表都在一个单独的.csv文件中,其中每一行都是一个完整的记录。我们制作了一个函数,它使用pd.read_xml函数和.xsl(1.0(文件来执行XSLT转换以创建记录。

对于较小的文件(小于250MB(,这就像一个魅力,但一旦文件变大,它就不再工作了。我们正在Azure功能中运行此功能,并已升级到最高溢价计划,以测试这是否是解决方案。我们也在本地电脑上尝试过这一点。两个选项都一直失败。Azure功能以代码137退出,并在本地PC上继续运行,24小时后仍未完成,最终超时。

如有任何建议或帮助,我们将不胜感激。这似乎与内存有关,但我们找不到解决方案

要节省读取XML的内存,请使用事件驱动解析。它将元素一个接一个地提供给代码,而不是在内存中构建对象。虽然这最大限度地减少了解析器中的内存使用,但您仍然需要注意自己的代码是否能正确使用内存。

SAX是这方面的主要库。(文档(

最新更新