Python XML a CSV

Python XML a CSV

Descubriremos cómo se puede usar el lenguaje de programación de Python para convertir los datos del formato XML en un archivo CSV en esta publicación. Python contiene varios módulos y paquetes útiles que reducen la cantidad de código que usamos en la vida diaria. Esta característica de Python lo convierte en una opción popular entre una parte importante de la comunidad de desarrolladores, particularmente para los científicos de datos. Python también es preferido por muchos debido a su confiabilidad y facilidad. Esto tiene el beneficio significativo de trabajar con grandes conjuntos de datos simples.

Que es xml?

XML es una abreviatura del lenguaje de marcado extensible. El uso de XML en los servicios web es esencial o que juega un papel clave/principal en los servicios web. Esto hace que sea sencillo transferir los datos entre varias plataformas. Ofrece un método estandarizado para marcar los datos configurados como una jerarquía o árbol. Se convierte en una excelente opción en la transmisión de datos y los servicios web porque simplifica la complejidad y permite que los datos sean leídos por numerosas aplicaciones incompatibles. XML generalmente puede ser un poco más pesado. Si está transfiriendo más datos, implica que también necesitará más tiempo de ejecución, espacio adicional y velocidad de transferencia. Los usuarios generales no pueden leer los datos en formato XML. Es posible que esta estructura o formato deba cambiarse para que sea más fácil de usar y legible.

¿Qué es CSV??

CSV es una abreviatura de los "valores separados por comas". Se utiliza una coma para separar los valores de datos en un archivo CSV. Los datos se almacenan en una estructura tabular en este popular formato de archivo. El formato de archivo de CSV es compatible con aplicaciones o herramientas de casi todos los lenguajes de programación conocidos. Dado que los clientes generales no pueden entender o leer la información en formato XML, podría ser necesario convertirla en un formato más fácil de usar como CSV. Un archivo CSV se puede importar, exportar y convertir fácilmente en cualquier tipo de archivo en el desarrollo web.

Crear un archivo XML en Python

Este artículo se centra principalmente en la conversión de XML a CSV. Pero para ser un buen desarrollador de Python, primero debe saber cómo podemos crear un archivo XML usando Python. Puede crear un archivo XML en Python utilizando cualquiera de los siguientes métodos:

Método 1: Creación de XML usando el módulo Minidom

Para usar el XML.DOM () Función, primero importamos el módulo Minidom. El elemento raíz se crea y se agrega a XML. Después de eso, creamos un producto infantil del nombre de los padres, "Python". Después de crear el producto infantil, puede guardar el nombre del archivo de su elección. Recuerda incluir el ".extensión XML ”con el nombre de archivo especificado. La interfaz del modelo de objeto de documento (DOM) se implementa mínimamente utilizando el módulo Minidom que tiene una API que es idéntica a otros idiomas. Su objetivo es ser mucho más pequeño y más simple que el DOM completo.

Producción:

El archivo XML se crea en el directorio actual.

Método 2: Creación de XML usando el Módulo ElementTree

Para comenzar, debemos importar "XML.etre.ElementTree ”primero para crear un subárbol. Después de eso, creamos el elemento raíz, que debe estar en el bloque previsto para evitar un error. Simplemente podemos crear o definir una estructura de árbol después de la creación del elemento raíz. Luego, guardamos el archivo con el ".extensión de XML ”. Podemos dividir un documento usando Elementree en una estructura de árbol manejable.

Producción:

Como puede ver, se crea nuestro archivo XML. También podemos abrirlo usando los navegadores web para ver el contenido.

Cómo cambiar XML a CSV en Python

Como aprendimos a crear archivos XML en Python, ahora discutimos cómo convertir los archivos XML a CSV. Las siguientes etapas generalmente están involucradas en la conversión de XML a CSV:

  1. Lea el archivo XML.
  2. Crear un CSV.
  3. El archivo CSV debe recibir un encabezado que contenga los campos que deben incluirse.
  4. Cree una nueva fila en el archivo CSV y extraiga los campos necesarios para cada elemento XML.

Método 1: Convertir XML a CSV usando Python simple

Primero, veremos un método para la conversión de XML a CSV que no necesita instalarse ninguna biblioteca adicional. Python tiene un módulo llamado XML.etre.ElementTree que puede usarse para manipular XML. Este es el mismo módulo que usamos para crear el archivo XML. Este módulo le simplifica para usted producir y analizar los archivos XML. El siguiente código importa los datos en XML, extrae la información sobre los estudiantes (nombre, rollo y curso), y genere un registro/fila en el CSV para cada estudiante. Se utilizan tres funciones clave para hacer esto:

ElementTree.analizar gramaticalmente(): Se utiliza para importar los datos XML.

encuentra todos(): Localiza todos los elementos que son los niños directos del elemento actual y tienen la etiqueta proporcionada.

encontrar(): Con la etiqueta especificada, esta función localiza el primer elemento infantil.

Producción:

Método 2: Convertir XML a CSV usando pandas

Aunque hay muchas funciones y bibliotecas para analizar el XML, usamos el módulo Elementree para este ejemplo. Todo el archivo XML se analiza y se almacena en forma de árbol utilizando el módulo Elementree. Para analizar el XML, incluye el método Parse (). El método getroot () del árbol devuelve el elemento raíz del árbol. Iteramos sobre el árbol usando un bucle for y los datos se recuperan utilizando los nombres de las etiquetas. El módulo pandas se utiliza para almacenar los datos analizados en un marco de datos. Luego, usamos la función TO_CSV (), que proporciona PANDAS, para convertir el DataFrame en CSV.

Producción:

Método 3: Convertir XML a CSV usando el módulo XMLTodict

La conversión de un XML a un objeto py o objeto Python es otro enfoque para trabajar con XML. Esto le permite buscar elementos directamente dentro del archivo XML sin hacer ningún procesamiento XML. El código que sigue realiza la misma tarea que el código que lo precede. Pero en lugar de usar XML.Etree para analizar el XML, utiliza el módulo XMLTodict. Debe instalar el XMLTodict individualmente porque es un módulo de terceros.

Con la ayuda del .Función parse () Desde el módulo XMLTodict, simplemente puede acceder a los datos leyendo el XML y convirtiéndolo en un diccionario ordenado.

Producción:

Método 4: Convertir XML a CSV utilizando el módulo Untangle

Por último, pero no menos importante, puede usar el módulo Python Untangle para convertir XML en CSV. Descansar un archivo XML y hace que los datos estén disponibles, al igual que XMLTodict. Dado que Undangle también es un módulo de terceros, debe instalarlo por separado a través del comando PIP:

El script que sigue a importar los datos de un archivo XML, genera un CSV y luego usa el módulo Unfangle para extraer los datos del XML y escribirlos en el CSV.

Producción:

Conclusión

En este tutorial, discutimos los múltiples métodos para convertir XML a CSV en Python. Como hemos demostrado, algunas bibliotecas en Python se pueden usar para la conversión de XML a CSV. Puede elegir cualquiera de ellos según sus requisitos. Si todo lo que quiere hacer es convertir XML en CSV, el módulo Python incorporado para XML.Etree ofrece el mejor rendimiento. Sin embargo, XMLTodict es una herramienta extremadamente útil si también necesita crear un archivo XML.