Converti XML in JSON in Python

Muhammad Waiz Khan 25 aprile 2021
Converti XML in JSON in Python

In questo tutorial, esamineremo il metodo per convertire XML in JSON in Python. Il formato JSON è più semplice da leggere e scrivere rispetto al formato XML; il suo stile compatto e la sua leggerezza migliorano anche le prestazioni del sistema, specialmente nelle API RESTful. Poiché JSON è migliore di XML in molti aspetti, viene utilizzato come sostituto di XML in molti campi.

Supponiamo ora di avere dati salvati in formato XML e di volerli convertire in formato JSON; possiamo convertire i dati XML in JSON in Python usando il seguente metodo.

Converti XML in JSON in Python usando il modulo xmltodict

In Python, abbiamo il metodo json.dumps(obj) che accetta i dati come argomento obj e li serializza come flusso formattato JSON e restituisce i dati formattati come output.

L’argomento obj può essere un dizionario, una stringa, una lista o una tupla, ecc, Il metodo json.dumps() converte obj in base al suo tipo di dati. Come se avessimo bisogno di un oggetto JSON, dovremo fornire l’input come dizionario, poiché il metodo json.dumps() converte il dizionario nell’oggetto JSON. Il tipo di lista o tupla viene convertito in array JSON e il tipo stringa in stringa JSON.

Possiamo usare il metodo xmltodict.parse() per convertire i dati XML nel tipo di dati del dizionario Python. Il metodo xmltodict.parse() accetta i dati in formato XML come una stringa, analizza i dati e restituisce l’output come dizionario.

Dopo aver convertito i dati in un dizionario usando il metodo xmltodict.parse(), possiamo usare il metodo json.dumps() per convertire i dati nell’oggetto JSON.

Il codice di esempio seguente mostra come convertire i dati XML in JSON utilizzando il metodo json.dumps() e xmltodict.parse() in 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)

Produzione:

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

Articolo correlato - Python XML

Articolo correlato - Python JSON