Konvertieren XML in CSV mit Python

Vaibhav Vaibhav 14 April 2022
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
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.

Verwandter Artikel - Python XML

Verwandter Artikel - Python CSV