Python 数据处理程序内存异常

2021-11-09 10:40:29 +08:00
 CaptainD

from xml.etree.ElementTree import iterparse
def parse_and_remove(filename, path):
    path_parts = path.split('/')
    doc = iterparse(filename, ('start', 'end'))
    # Skip the root element
    next(doc)
    tag_stack = []
    elem_stack = []
    for event, elem in doc:
        if event == 'start':
            tag_stack.append(elem.tag)
            elem_stack.append(elem)
        elif event == 'end':
            if tag_stack == path_parts:
                yield elem
                elem_stack[-2].remove(elem)
            try:
                tag_stack.pop()
                elem_stack.pop()
            except IndexError:
                pass
data = parse_and_remove('my.xml','path')
client, table = getMongo()

for pothole in data:
    resDict = {
        # 获取我需要的数据
        } 

    table.insert(resDict)
client.close()
1626 次点击
所在节点    Python
1 条回复
2i2Re2PLMaDnghL
2021-11-10 09:46:26 +08:00
1. 尝试换用 lxml
2. 尝试用 xpath 而不是手动 iter 比对 path

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/814087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX