使用 Python 將 XML 轉換為 CSV
Vaibhav Vaibhav
2022年5月18日
XML
或 Extensible Markup Language
是一種標記語言,它以人類可讀和機器可讀的格式將資料儲存在文件中。它有一個副檔名,.xml
。
CSV
或逗號分隔值
將資料儲存在以逗號分隔的文件中。它有一個副檔名,.csv
。在本文中,我們將學習如何使用 Python 將 XML
資料轉換為 CSV
資料。
使用 Python 將 XML
轉換為 CSV
要將 XML
轉換為 CSV
,我們可以使用 Python 中內建的 xml
模組。
這個模組還有另一個模組,ElementTree
,我們可以用它來將 XML
文件表示為一棵樹。它有一個方法 parse()
,它接受一個 XML
文件作為引數。
它解析整個 XML
文件並將其以樹的形式儲存。樹有一個 getroot()
方法,它返回樹的根元素。
使用 for
迴圈,我們可以遍歷樹並使用標籤名稱(name
、rollnumber
和 age
)訪問資料。
為了理解轉換,我們需要一些樣本 XML
資料。你可以使用以下 XML
資料並將其儲存在名為 input.xml
的檔案中。
以下程式碼段將使用此資料,你也應該使用此資料,以便我們在同一頁面上。
<students>
<student>
<name>Rick Grimes</name>
<rollnumber>1</rollnumber>
<age>15</age>
</student>
<student>
<name>Lori Grimes</name>
<rollnumber>2</rollnumber>
<age>16</age>
</student>
<student>
<name>Carl Grimes</name>
<rollnumber>3</rollnumber>
<age>14</age>
</student>
<student>
<name>Judith Grimes</name>
<rollnumber>4</rollnumber>
<age>13</age>
</student>
</students>
請參閱以下 Python 程式碼以瞭解如何執行轉換。
from xml.etree import ElementTree
tree = ElementTree.parse("input.xml")
root = tree.getroot()
for student in root:
name = student.find("name").text
roll_number = student.find("rollnumber").text
age = student.find("age").text
print(f"{name},{roll_number},{age}")
輸出:
Rick Grimes,1,15
Lori Grimes,2,16
Carl Grimes,3,14
Judith Grimes,4,13
作者: Vaibhav Vaibhav