使用xml.etree.ElementTree生成大型xml文件时的MemoryError

时间:2017-01-30 05:51:05

标签: python json xml python-2.7 elementtree

我正在阅读120个json个文件,每个文件大约11MB,并将它们转换为单个xml文件。

我在处理第14个文件的过程中得到MemoryError

import xml.etree.ElementTree as ET
import json

weightroot = ET.Element('meandata')  # root element
for x in range(60,7141,60):
    print "Processing weight for timestep:" + str(x)
    intervalTag = ET.SubElement(weightroot, 'interval', begin=str(x), end=str(x+60), id=str(x))  # 2nd element
    with open(str(x)+'.json') as data_file:
        data = json.load(data_file)
        for key, value in data.iteritems():
            ET.SubElement(intervalTag, 'edge', {'id': str(key), 'traveltime': str(value)})

weighttree = ET.ElementTree(weightroot)
newWeightFilePath = "weight_5.xml"
weighttree.write(newWeightFilePath)

是否有更高效的内存处理方式?正如您所看到的,我创建了许多SubElement标记,直到最后才写入实际的xml文件。

0 个答案:

没有答案