使用 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