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