Convertir XML a JSON en Python

Muhammad Waiz Khan 30 marzo 2021
Convertir XML a JSON en Python

En este tutorial, veremos el método para convertir XML a JSON en Python. El formato JSON es más sencillo de leer y escribir que el formato XML; su estilo compacto y liviano también mejoran el rendimiento del sistema, especialmente en las API RESTful. Como JSON es mejor que XML en muchos aspectos, se utiliza como reemplazo de XML en muchos campos.

Ahora, suponga que tenemos datos guardados en formato XML y queremos convertirlos a formato JSON; podemos convertir los datos XML a JSON en Python usando el siguiente método.

Convierta XML a JSON en Python usando el módulo xmltodict

En Python, tenemos el método json.dumps(obj) que toma datos como argumento obj y los serializa como el flujo con formato JSON y devuelve los datos formateados como salida.

El argumento obj puede ser un diccionario, cadena, lista o tupla, etc., el método json.dumps() convierte el obj de acuerdo con su tipo de datos. Como si necesitamos un objeto JSON, tendremos que proporcionar la entrada como un diccionario, ya que el método json.dumps() convierte el diccionario al objeto JSON. El tipo de lista o tupla se convierte en un array JSON y el tipo de cadena en una cadena JSON.

Podemos usar el método xmltodict.parse() para convertir los datos XML al tipo de datos del diccionario de Python. El método xmltodict.parse() toma datos en formato XML como una cadena, analiza los datos y devuelve la salida como un diccionario.

Después de convertir los datos a un diccionario usando el método xmltodict.parse(), podemos usar el método json.dumps() para convertir los datos al objeto JSON.

El siguiente código de ejemplo demuestra cómo convertir los datos XML a JSON usando los métodos json.dumps() y xmltodict.parse() en Python.

import xmltodict
import json

dictionary = xmltodict.parse(
    """<note>
  <date>2021-03-07</date>
  <time>15:23</time>
  <to>Sara</to>
  <from>Khan</from>
  <msg>Let's meet this weekend!</msg>
</note>"""
)
json_object = json.dumps(dictionary)
print(json_object)

Producción :

{"note": {"date": "2021-03-07", "time": "15:23", "to": "Sara", "from": "Khan", "msg": "Let's meet this weekend!"}}

Artículo relacionado - Python XML

Artículo relacionado - Python JSON