使用 Python 將 XML 轉換為 CSV

Vaibhav Vaibhav 2022年5月18日
使用 Python 將 XML 轉換為 CSV

XMLExtensible Markup Language 是一種標記語言,它以人類可讀和機器可讀的格式將資料儲存在文件中。它有一個副檔名,.xml

CSV逗號分隔值將資料儲存在以逗號分隔的文件中。它有一個副檔名,.csv。在本文中,我們將學習如何使用 Python 將 XML 資料轉換為 CSV 資料。

使用 Python 將 XML 轉換為 CSV

要將 XML 轉換為 CSV,我們可以使用 Python 中內建的 xml 模組。

這個模組還有另一個模組,ElementTree,我們可以用它來將 XML 文件表示為一棵樹。它有一個方法 parse(),它接受一個 XML 文件作為引數。

它解析整個 XML 文件並將其以樹的形式儲存。樹有一個 getroot() 方法,它返回樹的根元素。

使用 for 迴圈,我們可以遍歷樹並使用標籤名稱(namerollnumberage)訪問資料。

為了理解轉換,我們需要一些樣本 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 avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub

相關文章 - Python XML

相關文章 - Python CSV