【发布时间】:2021-04-22 11:12:01
【问题描述】:
我一直在使用包pandas_read_xml 将XML 文件读入pandas 数据框。但是,我最近开始遇到这个包非常奇怪的行为。 xml 解析器偶尔会崩溃,但在反复尝试时,它可以工作。我对此感到非常困惑,所以我希望这里的任何人有可能帮助我解决这个问题。我将尝试在下面说明我面临的问题。
import pandas as pd
import pandas_read_xml as pdx
data = pdx.read_xml('https://www.sec.gov/Archives/edgar/data/1000351/000114554921012283/primary_doc.xml', ['edgarSubmission'])
这偶尔会返回错误“ExpatError: mismatched tag: line 50, column 124”。但是,经过反复尝试,它工作得很好。对于其他路径也观察到类似的行为。我已确保 xml 文件没有任何问题。我查看了 Traceback,它包含以下内容:
File "<ipython-input-118-c68fdb3a2633>", line 1, in <module>
data = pdx.read_xml('https://www.sec.gov/Archives/edgar/data/1002537/000114554921006264/primary_doc.xml',['edgarSubmission'])
File "C:\Users\A1610222\AppData\Local\Continuum\anaconda2\lib\site-packages\pandas_read_xml.py",
line 33, in read_xml return read_xml_as_dataframe(read_xml_from_url(path_or_xml), root_key_list,
root_is_rows=root_is_rows, transpose=transpose)
File "C:\Users\A1610222\AppData\Local\Continuum\anaconda2\lib\site-packages\pandas_read_xml.py",
line 62, in read_xml_as_dataframe return pd.DataFrame([get_to_root_in_dict(xmltodict.parse(xml),
root_key_list)])
File "C:\Users\A1610222\AppData\Local\Continuum\anaconda2\lib\site-packages\xmltodict.py", line 327,
in parse parser.Parse(xml_input, True)
ExpatError: mismatched tag: line 50, column 124
它似乎指向包 pandas_read_xml 中的第 33 和 62 行。我已经卸载并重新安装了该软件包以确保没有任何问题,但问题仍然存在。如果我缺少一些完全基本的东西,请原谅我的无知。如果有任何不清楚的地方,请告诉我。期待您的帮助。
【问题讨论】:
-
对包不熟悉;但是,我知道@Parfait 正在直接在 pandas 中开发
read_xml功能。同时,为什么不使用 lxml 读取文件然后创建数据框呢?如果您需要社区的帮助,您可以分享预期的输出数据框
标签: python pandas xml-parsing readxml