Convertir XML en CSV à l'aide de Python

Vaibhav Vaibhav 14 avril 2022
Convertir XML en CSV à l'aide de Python

XML ou Extensible Markup Language est un langage de balisage qui stocke les données d’un document dans un format lisible par l’homme et par la machine. Il a une extension de fichier, .xml.

CSV ou Comma Separated Values stocke les données dans un document séparé par une virgule. Il a une extension de fichier, .csv. Dans cet article, nous allons apprendre à convertir des données XML en données CSV en utilisant Python.

Convertir XML en CSV à l’aide de Python

Pour convertir XML en CSV, nous pouvons utiliser le module XML intégré à Python.

Ce module a encore un autre module, ElementTree, que nous pouvons utiliser pour représenter un document XML sous forme d’arbre. Il possède une méthode parse() qui accepte un document XML en paramètre.

Il parse l’ensemble du document XML et le stocke sous forme d’arborescence. L’arbre a une méthode getroot() qui renvoie l’élément racine de l’arbre.

À l’aide d’une boucle for, nous pouvons parcourir l’arborescence et accéder aux données en utilisant les noms des balises (name, rollnumber et age).

Pour comprendre la conversion, nous avons besoin de quelques exemples de données XML. Vous pouvez utiliser les données XML suivantes et les stocker dans un fichier nommé input.xml.

L’extrait de code suivant utilisera ces données, et vous devriez faire de même pour que nous soyons sur la même page.

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

Reportez-vous au code Python suivant pour savoir comment effectuer la conversion.

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}")

Production :

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.

Article connexe - Python XML

Article connexe - Python CSV