[英]Parse XML to Table in Python
我正在尝试在 Python 中将 XML 解析为类似表格的结构。 想象一下这样的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<base>
<element1>element 1</element1>
<element2>element 2</element2>
<element3>
<subElement3>subElement 3</subElement3>
</element3>
</base>
我想要这样的结果:
KEY | VALUE
base.element1 | "element 1"
base.element2 | "element 2"
base.element3.subElement3 | "subElement 3"
我试过使用 xml.etree.cElementTree,然后这里描述的函数如何在 Python 中将 xml 字符串转换为字典?
有什么功能可以做到这一点吗? 我找到的所有答案都是为特定的 XML 方案编写的,并且需要针对每个新的 XML 方案进行编辑。 作为参考,在 R 中使用 XML 和 XML2 包以及 xmlToList 函数很容易。
我使用以下脚本获得了所需的结果。
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<base>
<element1>element 1</element1>
<element2>element 2</element2>
<element3>
<subElement3>subElement 3</subElement3>
</element3>
</base>
蟒蛇代码:
import pandas as pd
from lxml import etree
data = "C:/Path/test.xml"
tree = etree.parse(data)
lstKey = []
lstValue = []
for p in tree.iter() :
lstKey.append(tree.getpath(p).replace("/",".")[1:])
lstValue.append(p.text)
df = pd.DataFrame({'key' : lstKey, 'value' : lstValue})
df.sort_values('key')
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.