Convertir XML a CSV usando Python
XML
o Extensible Markup Language
es un lenguaje de marcado que almacena datos en un documento tanto en formato legible por humanos como por máquina. Tiene una extensión de archivo, .xml
.
CSV
o Comma Separated Values
almacena datos en un documento separados por una coma. Tiene una extensión de archivo, .csv
. En este artículo, aprenderemos cómo convertir datos XML
a datos CSV
usando Python.
Convierta XML
a CSV
usando Python
Para convertir XML
a CSV
, podemos usar el módulo xml
incorporado en Python.
Este módulo tiene otro módulo, ElementTree
, que podemos usar para representar un documento XML
como un árbol. Tiene un método parse()
que acepta un documento XML
como parámetro.
Analiza todo el documento XML
y lo almacena en forma de árbol. El árbol tiene un método getroot()
que devuelve el elemento raíz del árbol.
Usando un bucle for
, podemos iterar sobre el árbol y acceder a los datos usando los nombres de las etiquetas (name
, rollnumber
y age
).
Para comprender la conversión, necesitamos algunos datos XML
de muestra. Puede usar los siguientes datos XML
y almacenarlos en un archivo llamado input.xml
.
El siguiente fragmento de código usará estos datos, y tú también deberías hacerlo para que estemos en la misma página.
<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>
Consulte el siguiente código de Python para aprender cómo realizar la conversión.
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}")
Producción :
Rick Grimes,1,15
Lori Grimes,2,16
Carl Grimes,3,14
Judith Grimes,4,13
Artículo relacionado - Python XML
- Impresión bonita de la salida XML en Python
- Crear un analizador XML en Python
- Convertir XML a diccionario en Python
- Convertir XML a JSON en Python