Python implémente la conversion entre XML et JSON
Introduction :
Dans le processus de développement quotidien, nous devons souvent convertir des données entre différents formats. XML et JSON sont des formats d'échange de données courants. En Python, nous pouvons utiliser diverses bibliothèques pour convertir entre XML et JSON. Cet article présentera plusieurs méthodes couramment utilisées, avec des exemples de code.
1. XML vers JSON
En Python, nous pouvons utiliser le module xml.etree.ElementTree pour analyser et générer du XML. Utilisez plutôt le module json pour analyser et générer du JSON. Voici un exemple de conversion de XML en JSON :
import xml.etree.ElementTree as ET import json def xml_to_json(xml_string): root = ET.fromstring(xml_string) return json.dumps({root.tag: xml_to_dict(root)}) def xml_to_dict(element): d = {} if element.attrib: d["@attributes"] = element.attrib if element.text: d[element.tag] = element.text for child in element: child_data = xml_to_dict(child) if child.tag in d: if type(d[child.tag]) is list: d[child.tag].append(child_data) else: d[child.tag] = [d[child.tag], child_data] else: d[child.tag] = child_data return d
Description du code :
fromstring
du module xml.etree.ElementTree
pour convertir le XML. caractères Convertir la chaîne en objet Element. xml.etree.ElementTree
模块的fromstring
方法将XML字符串转换为Element对象。xml_to_json
函数,该函数接受一个XML字符串作为参数,并将解析后的结果转换为JSON字符串。xml_to_json
函数中,我们首先获取根元素的tag,并将其作为最外层的键。xml_to_dict
函数来递归地将每个XML元素转换为字典格式。xml_to_dict
函数中,我们首先判断当前元素是否有属性,如果有,则将其转换为字典的@attributes
键。xml_to_dict
函数来解析子元素。二、JSON转XML
与XML转JSON相反,我们可以使用xml.etree.ElementTree模块来生成XML,而使用json模块来解析和生成JSON。下面是一个将JSON转换为XML的示例:
import xml.etree.ElementTree as ET import json def json_to_xml(json_string): data = json.loads(json_string) root = ET.Element(data.keys()[0]) convert_dict_to_xml(data[data.keys()[0]], root) return ET.tostring(root, encoding="utf-8", xml_declaration=True) def convert_dict_to_xml(data, parent): if isinstance(data, dict): for key, value in data.items(): if isinstance(value, dict): element = ET.SubElement(parent, key) convert_dict_to_xml(value, element) elif isinstance(value, list): for item in value: element = ET.SubElement(parent, key) convert_dict_to_xml(item, element) else: ET.SubElement(parent, key).text = str(value) else: parent.text = str(data)
代码说明:
loads
方法将JSON字符串解析为Python字典对象。convert_dict_to_xml
函数来递归地将字典转换为XML格式。convert_dict_to_xml
函数中,我们首先判断当前数据是否为字典类型,如果是,则迭代字典的键值对。convert_dict_to_xml
函数。convert_dict_to_xml
xml_to_json
, qui accepte une chaîne XML comme paramètre et convertit le résultat analysé en chaîne JSON. xml_to_json
, nous récupérons d'abord la balise de l'élément racine et l'utilisons comme clé la plus externe. Ensuite, nous appelons la fonction xml_to_dict
pour convertir récursivement chaque élément XML au format dictionnaire.
xml_to_dict
, nous déterminons d'abord si l'élément actuel a des attributs, et si c'est le cas, le convertissons en clé @attributes
du dictionnaire. 🎜🎜Ensuite, nous déterminons si l'élément actuel a un contenu textuel et, si tel est le cas, le convertissons en paire clé-valeur d'un dictionnaire. 🎜🎜Enfin, nous parcourons les éléments enfants de l'élément actuel et appelons récursivement la fonction xml_to_dict
pour analyser les éléments enfants. 🎜🎜🎜2. JSON vers XML🎜Contrairement à XML vers JSON, nous pouvons utiliser le module xml.etree.ElementTree pour générer du XML et le module json pour analyser et générer du JSON. Voici un exemple de conversion de JSON en XML : 🎜rrreee🎜Description du code : 🎜🎜🎜Tout d'abord, nous utilisons la méthode loads
du module json pour analyser la chaîne JSON dans un objet dictionnaire Python. 🎜🎜Ensuite, nous créons un élément racine et définissons sa balise comme clé du dictionnaire. 🎜🎜Ensuite, nous appelons la fonction convert_dict_to_xml
pour convertir récursivement le dictionnaire au format XML. 🎜🎜Dans la fonction convert_dict_to_xml
, nous déterminons d'abord si les données actuelles sont un type de dictionnaire, et si c'est le cas, itérons les paires clé-valeur du dictionnaire. 🎜🎜Si la valeur est de type dictionnaire, créez un élément enfant et appelez la fonction convert_dict_to_xml
de manière récursive. 🎜🎜Si la valeur est de type liste, parcourez chaque élément de la liste, créez plusieurs sous-éléments avec la même balise et appelez la fonction convert_dict_to_xml
de manière récursive. 🎜🎜Si la valeur est un autre type de données de base, ajoutez-la en tant que contenu texte à l'élément actuel. 🎜🎜🎜Résumé : 🎜Grâce aux exemples de code ci-dessus, nous pouvons réaliser une conversion mutuelle entre XML et JSON en Python. Qu'il s'agisse de conversion de XML en JSON ou de JSON en XML, cela peut être réalisé en utilisant des bibliothèques et des méthodes pertinentes. Grâce à ces conversions, nous pouvons facilement échanger et traiter des données entre différents formats de données. Dans le développement réel, des méthodes appropriées sont sélectionnées pour analyser et générer différents formats de données en fonction de besoins spécifiques. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!