Python implémente la conversion entre XML et JSON
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 :
- Tout d'abord, nous utilisons la méthode
fromstring
du modulexml.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)
代码说明:
- 首先,我们使用json模块的
loads
方法将JSON字符串解析为Python字典对象。 - 然后,我们创建一个根元素,将其tag设置为字典的键。
- 接下来,我们调用
convert_dict_to_xml
函数来递归地将字典转换为XML格式。 - 在
convert_dict_to_xml
函数中,我们首先判断当前数据是否为字典类型,如果是,则迭代字典的键值对。 - 如果值是字典类型,则创建一个子元素,并递归调用
convert_dict_to_xml
函数。 - 如果值是列表类型,则迭代列表中的每个元素,创建多个相同tag的子元素,并递归调用
convert_dict_to_xml
Ensuite, nous définissons une fonction - Dans la fonction
xml_to_json
, nous récupérons d'abord la balise de l'élément racine et l'utilisons comme clé la plus externe.
xml_to_json
, qui accepte une chaîne XML comme paramètre et convertit le résultat analysé en chaîne JSON. 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Minio Object Storage: Déploiement haute performance dans le système Centos System Minio est un système de stockage d'objets distribué haute performance développé sur la base du langage Go, compatible avec Amazons3. Il prend en charge une variété de langages clients, notamment Java, Python, JavaScript et GO. Cet article introduira brièvement l'installation et la compatibilité de Minio sur les systèmes CentOS. Compatibilité de la version CentOS Minio a été vérifiée sur plusieurs versions CentOS, y compris, mais sans s'y limiter: CentOS7.9: fournit un guide d'installation complet couvrant la configuration du cluster, la préparation de l'environnement, les paramètres de fichiers de configuration, le partitionnement du disque et la mini

La formation distribuée par Pytorch sur le système CentOS nécessite les étapes suivantes: Installation de Pytorch: La prémisse est que Python et PIP sont installés dans le système CentOS. Selon votre version CUDA, obtenez la commande d'installation appropriée sur le site officiel de Pytorch. Pour la formation du processeur uniquement, vous pouvez utiliser la commande suivante: pipinstalltorchtorchVisionTorChaudio Si vous avez besoin d'une prise en charge du GPU, assurez-vous que la version correspondante de CUDA et CUDNN est installée et utilise la version Pytorch correspondante pour l'installation. Configuration de l'environnement distribué: la formation distribuée nécessite généralement plusieurs machines ou des GPU multiples uniques. Lieu

Lors de l'installation de Pytorch sur le système CentOS, vous devez sélectionner soigneusement la version appropriée et considérer les facteurs clés suivants: 1. Compatibilité de l'environnement du système: Système d'exploitation: Il est recommandé d'utiliser CentOS7 ou plus. CUDA et CUDNN: La version Pytorch et la version CUDA sont étroitement liées. Par exemple, Pytorch1.9.0 nécessite CUDA11.1, tandis que Pytorch2.0.1 nécessite CUDA11.3. La version CUDNN doit également correspondre à la version CUDA. Avant de sélectionner la version Pytorch, assurez-vous de confirmer que des versions compatibles CUDA et CUDNN ont été installées. Version Python: branche officielle de Pytorch

CENTOS L'installation de Nginx nécessite de suivre les étapes suivantes: Installation de dépendances telles que les outils de développement, le devet PCRE et l'OpenSSL. Téléchargez le package de code source Nginx, dézippez-le et compilez-le et installez-le, et spécifiez le chemin d'installation AS / USR / LOCAL / NGINX. Créez des utilisateurs et des groupes d'utilisateurs de Nginx et définissez les autorisations. Modifiez le fichier de configuration nginx.conf et configurez le port d'écoute et le nom de domaine / adresse IP. Démarrez le service Nginx. Les erreurs communes doivent être prêtées à prêter attention, telles que les problèmes de dépendance, les conflits de port et les erreurs de fichiers de configuration. L'optimisation des performances doit être ajustée en fonction de la situation spécifique, comme l'activation du cache et l'ajustement du nombre de processus de travail.
