Python – 将非常大(6.4GB)的XML文件转换为JSON

Python – 将非常大(6.4GB)的XML文件转换为JSON,第1张

概述基本上,我有一个6.4GB的 XML文件,我想将其转换为 JSON,然后将其保存到磁盘.我目前正在使用i7 2700k和16GB的ram运行OSX 10.8.4,并运行 Python 64bit(双重检查).我收到一个错误,我没有足够的内存来分配.我该如何解决这个问题? print 'Opening'f = open('large.xml', 'r')data = f.read()f.clo 基本上,我有一个6.4GB的 XML文件,我想将其转换为 JSON,然后将其保存到磁盘.我目前正在使用i7 2700k和16GB的ram运行OSX 10.8.4,并运行 Python 64bit(双重检查).我收到一个错误,我没有足够的内存来分配.我该如何解决这个问题?
print 'opening'f = open('large.xml','r')data = f.read()f.close()print 'Converting'newJsON = xmltodict.parse(data)print 'Json DumPing'newJsON = Json.dumps(newJsON)print 'Saving'f = open('newJson.Json','w')f.write(newJsON)f.close()

错误:

Python(2461) malloc: *** mmap(size=140402048315392) Failed (error code=12)*** error: can't allocate region*** set a breakpoint in malloc_error_break to deBUGTraceback (most recent call last):  file "/Users/user/Git/Resources/largexml2Json.py",line 10,in <module>    data = f.read()MemoryError
解决方法 许多Python XML库支持递增地解析XML子元素,例如标准库中的xml.etree.ElementTree.iterparse和xml.sax.parse.这些函数通常称为“XML Stream Parser”.

您使用的xmltodict库也具有流模式.我认为它可以解决你的问题

https://github.com/martinblech/xmltodict#streaming-mode

总结

以上是内存溢出为你收集整理的Python – 将非常大(6.4GB)的XML文件转换为JSON全部内容,希望文章能够帮你解决Python – 将非常大(6.4GB)的XML文件转换为JSON所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存