【问题标题】:Iterparse object has no attribute nextIterparse 对象下一个没有属性
【发布时间】:2015-04-17 00:39:03
【问题描述】:

我正在解析一个 700mb 的文件,我有以下代码在我的测试文件上运行良好,没有行 context.iter(context) 和 event, elem = context.next()。

form xml.etree import cElementTree as ET
source = ("AAT.xml")
context = iter(context)
event, root = context.next()
for event, elem in context:
         if event == event("end"):
             some processing...
             elem.clear()
         root.clear()

但是,当我继续对 700mb 的文件进行迭代解析时,它仍然崩溃。已阅读:

Should memory usage increase when using ElementTree.iterparse() when clear()ing trees?

我相信这是因为我需要清除根目录,但是按照我在上面合并的一些教程后,我不断收到错误:

line 9, in <module>
event, root = context.next()
AttributeError: 'iterparse' object has no attribute 'next'

我还是 Python 的新手,我无法弄清楚为什么会发生这种情况,据我所知,我与示例一致。

【问题讨论】:

  • 你错过了最初的 context = iterparse() 调用。

标签: python memory iterparse celementtree


【解决方案1】:

假设你使用的是 Python3,迭代器语法是 next(context) 而不是 context.next()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多