Konvertieren XML in CSV mit Python

XML
oder Extensible Markup Language
ist eine Auszeichnungssprache, die Daten in einem Dokument sowohl in menschenlesbarem als auch in maschinenlesbarem Format speichert. Es hat die Dateierweiterung .xml
.
CSV
oder Comma Separated Values
speichert Daten in einem Dokument, getrennt durch ein Komma. Es hat die Dateierweiterung .csv
. In diesem Artikel erfahren Sie, wie Sie XML-Daten mit Python in CSV-Daten konvertieren.
Konvertieren XML
in CSV
mit Python
Um XML
in CSV
zu konvertieren, können wir das eingebaute xml
-Modul in Python verwenden.
Dieses Modul hat noch ein weiteres Modul, ElementTree
, mit dem wir ein XML
-Dokument als Baum darstellen können. Es hat eine Methode parse()
, die ein XML
-Dokument als Parameter akzeptiert.
Es analysiert das gesamte XML
-Dokument und speichert es in Form eines Baums. Der Baum hat eine getroot()
-Methode, die das Wurzelelement des Baums zurückgibt.
Mit einer for
-Schleife können wir über den Baum iterieren und mit den Tag-Namen (name
, rollnumber
und age
) auf die Daten zugreifen.
Um die Konvertierung zu verstehen, benötigen wir einige XML-Beispieldaten. Sie können die folgenden XML
-Daten verwenden und in einer Datei namens input.xml
speichern.
Das folgende Code-Snippet verwendet diese Daten, und Sie sollten dies auch tun, damit wir auf derselben Seite sind.
<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>
Sehen Sie sich den folgenden Python-Code an, um zu erfahren, wie die Konvertierung durchgeführt wird.
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}")
Ausgabe:
Rick Grimes,1,15
Lori Grimes,2,16
Carl Grimes,3,14
Judith Grimes,4,13
Verwandter Artikel - Python XML
- Hübsches Drucken der XML-Ausgabe in Python
- Einen XML-Parser in Python erstellen
- Konvertieren von XML in ein Dictionary in Python
- Konvertieren Sie XML in JSON in Python