Convertir XML en JSON en Python

Muhammad Waiz Khan 30 mars 2021
Convertir XML en JSON en Python

Dans ce tutoriel, nous examinerons la méthode pour convertir XML en JSON en Python. Le format JSON est plus simple à lire et à écrire que le format XML; son style compact et léger améliore également les performances du système, en particulier dans les API RESTful. Comme JSON est meilleur que XML à bien des égards, il est utilisé en remplacement de XML dans de nombreux domaines.

Maintenant, supposons que nous ayons des données enregistrées au format XML et que nous souhaitons les convertir au format JSON; nous pouvons convertir les données XML en JSON en Python en utilisant la méthode suivante.

Convertir XML en JSON en Python à l’aide du module xmltodict

En Python, nous avons la méthode json.dumps(obj) qui prend les données comme argument obj et les sérialise en tant que flux formaté JSON et renvoie les données formatées en sortie.

L’argument obj peut être un dictionnaire, une chaîne, une liste ou un tuple, etc., la méthode json.dumps() convertit obj selon son type de données. Comme si nous avons besoin d’un objet JSON, nous devrons fournir l’entrée sous forme de dictionnaire, car la méthode json.dumps() convertit le dictionnaire en objet JSON. Le type de liste ou de tuple est converti en tableau JSON et le type de chaîne en chaîne JSON.

Nous pouvons utiliser la méthode xmltodict.parse() pour convertir les données XML en données de type dictionnaire Python. La méthode xmltodict.parse() prend les données au format XML sous forme de chaîne, analyse les données et renvoie la sortie sous forme de dictionnaire.

Après avoir converti les données dans un dictionnaire en utilisant la méthode xmltodict.parse(), nous pouvons utiliser la méthode json.dumps() pour convertir les données en objet JSON.

L’exemple de code ci-dessous montre comment convertir les données XML en JSON en utilisant les méthodes json.dumps() et 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)

Production:

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

Article connexe - Python XML

Article connexe - Python JSON