Documentation développeur
Python
Mis à jour le 19 septembre 2026

Convertir JSON vers XML en Python

Convertissez des objets JSON vers XML en explicitant les règles de correspondance en Python.

JSON et XML utilisent des modèles de données différents : il n’existe donc pas de conversion universelle. Les bibliothèques doivent choisir comment représenter les racines, tableaux, attributs, nœuds texte, valeurs nulles et noms XML invalides.

Démarrage rapide#

L’exemple suivant utilise l’API standard de Python ou une bibliothèque couramment utilisée pour cette tâche.

Exemple#

Python
1import json2import xml.etree.ElementTree as ET34def append_value(parent: ET.Element, key: str, value):5    if isinstance(value, dict):6        node = ET.SubElement(parent, key)7        for child_key, child_value in value.items():8            append_value(node, child_key, child_value)9    elif isinstance(value, list):10        for item in value:11            append_value(parent, key, item)12    else:13        node = ET.SubElement(parent, key)14        node.text = "" if value is None else str(value)1516data = json.loads(source)17root = ET.Element("root")18for key, value in data.items():19    append_value(root, key, value)2021xml_text = ET.tostring(root, encoding="unicode")

Opérations courantes#

Ce second exemple couvre une opération fréquente en production ou une manière plus sûre de traiter des entrées réelles.

Variante courante#

Python
1tree = ET.ElementTree(root)2ET.indent(tree, space="  ")3xml_text = ET.tostring(root, encoding="unicode", xml_declaration=False)

Points importants#

Documentez la convention de conversion pour les tableaux, attributs, valeurs nulles et noms d’éléments ; il n’existe pas de correspondance JSON/XML universelle.

Bonnes pratiques#

  1. Considérez toute entrée externe comme non fiable et gérez explicitement les erreurs d’analyse ou de validation.
  2. Rendez explicites l’encodage, les unités, les formats et les conventions propres aux bibliothèques aux frontières du système.
  3. Ajoutez des tests couvrant l’entrée vide, le texte Unicode, les entrées invalides et des données représentatives de la production.

Références#

Implémenter JSON → XML dans d'autres langages :