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
Article connexe - Python XML
- Imprimer joliment une sortie XML en Python
- Créer un analyseur XML en Python
- Convertir XML en dictionnaire en Python
- Convertir XML en JSON en Python