簡體   English   中英

在 Python 中將 XML 解析為表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM