python - 将 XML 转换为 pandas 数据框
问题描述
我想将 XML 转换为 pandas DataFrame。我使用该ElementTree
库来解析 XML。
import pandas as pd
import xml.etree.ElementTree as et
xtree = et.parse('xmlfile.xml)
xroot = xtree.getroot()
[elem.tag for elem in xroot.iter()]
如何访问每个标签的值,以便将 XML 转换为 pandas 数据框?
数据框应如下所示:
以下面的 XML 为例,你能想出一些 Python 代码来实现上面的 DataFrame 吗?
<?xml version="1.0" encoding="UTF-8"?>
<!-- Deze grammatica wordt niet meer gebruikt. Gebruik voortaan FMPXMLRESULT. -->
-<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
<ERRORCODE>0</ERRORCODE>
<DATABASE>FrontEnd.fmp12</DATABASE>
<LAYOUT/>
-<ROW RECORDID="183122" MODID="0">
<identificatie>GAC</identificatie>
<naam>sample_naam_1</naam>
<wachtwoord>ww</wachtwoord>
<kenmerk>km</kenmerk>
<timestamp>30-4-2020 13:51:05</timestamp>
<berichtversie>1.0</berichtversie>
<analysecode>BST200428</analysecode>
<datum>30-4-2020</datum>
<datumontvangst>28-4-2020</datumontvangst>
</ROW>
-<ROW RECORDID="183123" MODID="0">
<identificatie>GAC</identificatie>
<naam>sample_naam_2</naam>
<wachtwoord>ww</wachtwoord>
<kenmerk>km</kenmerk>
<timestamp>30-4-2020 13:51:05</timestamp>
<berichtversie>1.0</berichtversie>
<analysecode>BST200429</analysecode>
<datum>30-4-2020</datum>
<datumontvangst>28-4-2020</datumontvangst>
</ROW>
</FMPDSORESULT>
解决方案
我已经为类似的用例制作了一个包。它也可以在这里工作。
pip install pandas_read_xml
你可以做类似的事情
import pandas_read_xml as pdx
df = pdx.read_xml('filename.xml', ['FMPDSORESULT'])
为了展平,你可以
df = pdx.flatten(df)
或者
df = pdx.fully_flatten(df)
推荐阅读
- python - Flask-Mail 队列消息被发送到不同的电子邮件
- javascript - .Net Core MVC - 如何将 MVC 表单提交给具有包含参数的 Route 属性的 actionMethod
- r - 数据下载失败,包 lodown
- css - 将 .icon-bar 的颜色更改为白色?
- jq - 使用 jq 中的捕获函数更新部分 JSON
- javascript - 返回一个未定义的值?
- python - 我在 /app1/add_post/ 处显示 NoReverseMatch 的错误
- vue.js - 如何从商店(vuex)vuejs返回一个值
- javascript - 单独的显示/隐藏按钮 javascript
- python - 将lxml etree拆分为多个etree对象Python