【发布时间】:2021-08-19 14:38:55
【问题描述】:
我正在尝试将 XML 文档(如下所示)写入 pandas 数据框。我正在使用df = pd.read_xml(doc.xml, xpath='//Generator)',但我一直收到错误消息ValueError: xpath does not return any nodes. Be sure row level nodes are in xpath. If document uses namespaces denoted with xmlns, be sure to define namespaces and use them in xpath.我还尝试将 xmlns=url 和 xmlns:xsi=url 添加到namespace= 参数,但没有成功。我似乎无法弄清楚我做错了什么。任何帮助将不胜感激。
我的 XML 文档如下所示:
<?xml-stylesheet type="text/xsl" href="url"?>
<IMODocument docID="document" xmlns="url" xmlns:xsi="url" xsi:schemaLocation="url">
<IMODocHeader>
<DocTitle>
Generators Output and Capability Report
</DocTitle>
<DocRevision>
4
</DocRevision>
<DocConfidentiality>
<DocConfClass>
PUB
</DocConfClass>
</DocConfidentiality>
<CreatedAt>
2021-08-18T10:15:50
</CreatedAt>
</IMODocHeader>
<IMODocBody>
<Date>
2021-08-18
</Date>
<Generators> //Portion i'm trying to write into a data frame
<Generator>
</Generator>
<Generator>
</Generator>
<Generator>
</Generator>
<Generator>
</Generator>
<Generator>
</Generator>
<Generator>
</Generator>
<Generator>
</Generator>
</Generators> // ----------------end-------------------
</IMODocBody>
</IMODocument>```
【问题讨论】:
-
您可以改用 xmltodict 包:pypi.org/project/xmltodict。它将 XML 作为字典加载,然后您可以使用 pd.json_normalize() 将其转换为数据帧。
-
DF 应该是什么样子的?
标签: python pandas xml dataframe xpath