问题标签 [iterparse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用“pythons etree.iterparse()”解析巨大的 xml 文件无法正常工作。代码中是否存在逻辑错误?
我想解析一个巨大的文件 xml-file。这个巨大文件中的记录确实看起来像这样。一般来说,文件看起来像这样
我写了一些代码,可以让我从这个文件中选择录音。
如果我让代码运行(包括存储在 MySQL 数据库中需要将近 50 分钟),我会注意到有一条记录,其中有近百万作者。这一定是错的。我什至通过查看文件来检查它,确保文件中没有错误。这篇论文只有 5 或 6 位作者,所以 dblp.xml 一切正常。所以我假设我的代码中有一个逻辑错误。但我不知道这可能在哪里。也许有人可以告诉我,错误在哪里?
代码在行中停止if len(auth) > 2000
。
编辑:
当我写这个函数时,我完全被误导了。我忽略了一个巨大的错误,即在尝试跳过一些不需要的录音时,会弄乱一些想要的录音。在文件中的某个点,我连续跳过了近一百万条记录,下面的通缉记录被炸毁了。
在 John 和 Paul 的帮助下,我设法重写了我的代码。它现在正在解析,并且接缝做得很好。如果某些意外错误仍未解决,我会报告。否则谢谢大家的帮助!我真的很感激!
python - lxml.etree.iterparse 关闭输入文件处理程序?
filterous用于 在单元测试iterparse
中解析简单的XMLStringIO
对象。但是,当之后尝试访问该对象时,Python 会以“ ”消息退出。根据文档,“从 lxml 2.3 开始,在错误情况下也将调用 .close() 方法”,但我没有收到错误消息或来自. 我的 IO-foo 显然跟不上速度,所以有人有建议吗?StringIO
ValueError: I/O operation on closed file
iterparse
Exception
iterparse
命令和(希望)相关代码:
设置.py:
测试/测试.py:
过滤/过滤.py:
追溯:
PS:测试在2010-07-27运行良好。
python - python中的lxml iterparse无法处理命名空间
工作正常,直到我将命名空间添加到根节点。关于我可以做些什么作为解决方法或正确的方法的任何想法?由于文件非常大,我需要事件驱动。
python - 使用 Python lxml 和 Iterparse 解析大型 XML 文件
我正在尝试使用 lxml 和 iterparse 方法编写一个解析器来单步执行一个包含许多项目的非常大的 xml 文件。
我的文件格式为:
到目前为止,我的解决方案是:
当我运行它时,我得到类似于:
空白集是因为它还提取了 url 标签的子项标签,并且它们显然没有要使用 xpath 提取的描述字段。我的希望是逐个解析出每个项目,然后根据需要处理子字段。我只是在学习 lxml 库,所以我很好奇是否有办法拉出主要项目,同时在遇到任何子项目时不理会?
python - 如何以有效的方式使用 lxml 解析这个带有嵌套元素的巨大 XML 文件?
我尝试使用XML minidom解析这个巨大的 XML 文档。虽然它在示例文件上运行良好,但在尝试处理真实文件(大约 400 MB)时会阻塞系统。
我尝试从我的 xml 文件的codereview中调整代码(它以流方式处理数据,而不是一次在内存中加载),由于元素的嵌套性质,我无法隔离数据集。我之前处理过简单的 XML 文件,但没有处理过像这样的内存密集型任务。
这是正确的方法吗?如何将库存和出版商 ID 关联到每本书?这就是我计划最终关联这两个表的方式。
非常感谢任何反馈。
书本.xml
蟒蛇代码:
蟒蛇输出:
所需的输出(最终存储在 MySQL 中 - 现在是 Python 中的列表):
python - 迭代解析 HTML(使用 lxml?)
我目前正在尝试迭代解析一个非常大的 HTML 文档(我知道.. yuck)以减少使用的内存量。我遇到的问题是我收到了 XML 语法错误,例如:
lxml.etree.XMLSyntaxError: Attribute name redefined, line 134, column 59
这会导致一切停止。
有没有一种方法可以迭代解析 HTML 而不会因语法错误而窒息?
目前我正在从 XML 语法错误异常中提取行号,从文档中删除该行,然后重新启动该过程。似乎是一个非常恶心的解决方案。有没有更好的办法?
编辑:
这就是我目前正在做的事情:
python - 忽略 Python (iterparse) 中的编码错误?
我已经为此奋斗了一个小时。我正在解析一个 XML 字符串iterparse
。但是,数据没有正确编码,我不是它的提供者,所以我无法修复编码。
这是我得到的错误:
我怎样才能简单地忽略此错误并继续解析?我不介意,如果一个字符没有正确保存,我只需要数据。
这是我尝试过的,全部来自互联网:
编辑:
我无法显示 url,因为它是私有 API 并且涉及我的 API 密钥,但这是我获取数据的方式:
导致问题的字符是: å
,我猜ä
&ö
等也会破坏它。
这是我尝试解析它的部分:
编辑 2:当我尝试在 PHP 中解析它时,就会发生
这种情况。澄清一下,F***ing Åmål 是一部戏剧电影=D
该文件以<?xml version="1.0" encoding="UTF-8" ?>
这是我从中得到的print repr(data[offset-10:offset+60])
:
python - 使用 lxml 和 iterparse() 解析大 (+- 1Gb) XML 文件
我必须解析具有如下结构的 1Gb XML 文件,并提取标签“作者”和“内容”中的文本:
到目前为止,我已经尝试了两件事:i) 读取整个文件并使用 .find(xmltag) 遍历它;ii) 使用 lxml 和 iterparse() 解析 xml 文件。第一个选项我已经让它工作了,但它很慢。第二个选项我还没有成功。
这是我所拥有的一部分:
结果只是空格,其中没有文本。
我一定是做错了什么,但我无法理解。另外,如果还不够明显,我对 python 还是很陌生,这是我第一次使用 lxml。请帮忙!
python - 在 python 中使用 lxml 的 iterparse 有条件地针对多个 DTD 进行验证
我正在根据 docinfo 有条件地针对多个 DTD 解析和验证相当大的 XML(>100MB):
我的问题是内存消耗,所以我想我应该改用 iterparse 但我找不到一种方法来做同样的验证。
提前致谢。
python - lxml etree.iterparse 错误“TypeError:读取文件对象必须返回纯字符串”
我想使用 lxml 解析 HTML 文档。我正在使用 python 3.2.3 和 lxml 2.3.4 ( http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml )
我正在使用etree.iterparse
解析文档,但它返回以下运行时错误:
问题是:如何解决这个运行时错误?
非常感谢。
这是代码: