Python XML à CSV

Python XML à CSV

Nous découvrirons comment le langage de programmation Python peut être utilisé pour convertir les données du format XML en un fichier CSV dans ce post. Python contient plusieurs modules et packages utiles qui réduisent la quantité de code que nous utilisons dans la vie quotidienne. Cette caractéristique de Python en fait une option populaire parmi une grande partie de la communauté des développeurs, en particulier pour les scientifiques des données. Python est également préféré par beaucoup en raison de sa fiabilité et de sa facilité. Cela a l'avantage significatif de travailler avec de grands ensembles de données simples.

Qu'est-ce que XML?

XML est une abréviation du langage de balisage extensible. L'utilisation de XML dans les services Web est essentielle ou qu'elle joue un rôle clé / majeur dans les services Web. Cela permet de transférer les données entre plusieurs plateformes. Il offre une méthode standardisée pour marquer les données configurées comme une hiérarchie ou une arbre. Il devient une excellente option dans la transmission des données et les services Web car il simplifie la complexité et permet de lire les données par de nombreuses applications incompatibles. XML peut généralement être un peu plus lourd. Si vous transférez plus de données, cela implique que vous aurez également besoin de plus d'exécution, d'espace supplémentaire et de vitesse de transfert. Les utilisateurs généraux ne peuvent pas lire les données au format XML. Cette structure ou ce format peut devoir être modifié pour le rendre plus convivial et lisible.

Qu'est-ce que CSV?

Le CSV est une abréviation de «valeurs séparées par des virgules». Une virgule est utilisée pour séparer les valeurs de données dans un fichier CSV. Les données sont stockées dans une structure tabulaire dans ce format de fichier populaire. Le format de fichier de CSV est pris en charge par des applications ou des outils de presque tous les langages de programmation bien connus. Étant donné que les clients généraux ne peuvent pas comprendre ou lire les informations au format XML, il peut être nécessaire de le convertir en un format plus convivial tel que CSV. Un fichier CSV peut être facilement importé, exporté et converti en n'importe quel type de fichier en développement Web.

Créer un fichier XML dans Python

Cet article est principalement axé sur la conversion de XML en CSV. Mais pour être un bon développeur Python, vous devriez d'abord savoir comment nous pouvons créer un fichier XML à l'aide de Python. Vous pouvez créer un fichier XML dans Python en utilisant l'une des méthodes suivantes:

Méthode 1: Création de XML à l'aide du module minidom

Pour utiliser le XML.Fonction DOM (), nous importons d'abord le module minidom. L'élément racine est ensuite créé et ajouté à XML. Après cela, nous créons un produit enfant du nom du parent, "Python". Après avoir créé le produit enfant, vous pouvez enregistrer le nom du fichier de votre choix. N'oubliez pas d'inclure le «.Extension xml »avec le nom de fichier spécifié. L'interface du modèle d'objet de document (DOM) est peu implémentée à l'aide du module Minidom qui a une API identique à d'autres langues. Il vise à être à la fois beaucoup plus petit et plus simple que le domaine complet.

Sortir:

Le fichier XML est créé dans le répertoire actuel.

Méthode 2: Création de XML à l'aide du Module ElementTree

Pour commencer, nous devons importer «XML.eree.ElementTree »d'abord pour créer un sous-arbre. Après cela, nous créons l'élément racine, qui doit être dans le bloc prévu pour éviter une erreur. Nous pouvons simplement créer ou définir une structure d'arbre après la création de l'élément racine. Ensuite, nous enregistrons le fichier avec le «.Extension xml ”. Nous pouvons diviser un document en utilisant ElementTree en une structure d'arbre gérable.

Sortir:

Comme vous pouvez le voir, notre fichier XML est créé. Nous pouvons également l'ouvrir en utilisant les navigateurs Web pour afficher le contenu.

Comment changer le XML en CSV dans Python

Alors que nous avons appris à créer des fichiers XML dans Python, nous discutons maintenant de la façon de convertir les fichiers XML en CSV. Les étapes suivantes sont généralement impliquées dans la conversion du XML en CSV:

  1. Lire le fichier XML.
  2. Créer un CSV.
  3. Le fichier CSV doit recevoir un en-tête contenant les champs qui doivent être inclus.
  4. Créez une nouvelle ligne dans le fichier CSV et extraire les champs nécessaires pour chaque élément XML.

Méthode 1: Conversion du XML en CSV en utilisant Plain Python

Tout d'abord, nous examinerons une méthode de conversion XML à CSV qui n'a pas besoin de bibliothèques supplémentaires pour être installées. Python a un module nommé XML.eree.ElementTree qui peut être utilisé pour manipuler XML. C'est le même module que nous avons utilisé pour créer le fichier XML. Ce module vous permet de produire et d'analyser les fichiers XML. Le code suivant importe les données dans XML, extraire les informations sur les étudiants (nom, rouleau et cours) et générer un enregistrement / ligne dans le CSV pour chaque étudiant. Trois fonctions clés sont utilisées pour ce faire:

ElementTree.Parse (): Utilisé pour importer les données XML.

Trouver tout(): Il localise tous les éléments qui sont les enfants directs de l'élément actuel et ont la balise fournie.

trouver(): Avec la balise spécifiée, cette fonction localise le premier élément enfant.

Sortir:

Méthode 2: Conversion du XML en CSV à l'aide de pandas

Bien qu'il existe de nombreuses fonctions et bibliothèques pour analyser le XML, nous utilisons le module ElementTree pour cet exemple. L'ensemble du fichier XML est analysé et stocké sous la forme d'un arbre à l'aide du module ElementTree. Pour analyser le XML, il comprend la méthode Parse (). La méthode getroot () de l'arbre renvoie l'élément racine de l'arbre. Nous itérons sur l'arborescence à l'aide d'une boucle pour la boucle et les données sont récupérées à l'aide des noms de balises. Le module Pandas est utilisé pour stocker les données analysées dans un dataframe. Ensuite, nous utilisons la fonction to_csv (), qui est fournie par Pandas, pour convertir le DataFrame en CSV.

Sortir:

Méthode 3: Conversion du XML en CSV en utilisant le module XMLTodict

La conversion d'un XML en un objet PY ou un objet Python est une autre approche pour travailler avec XML. Cela vous permet de rechercher des éléments directement dans le fichier XML sans effectuer de traitement XML. Le code qui suit effectue la même tâche que le code qui le précède. Mais au lieu d'utiliser XML.Etree pour analyser le XML, il utilise le module XMLTodict. Vous devez installer le XMLTodict individuellement car il s'agit d'un module tiers.

Avec l'aide du .Parse () Fonction du module XMLTodict, vous pouvez simplement accéder aux données en lisant le XML et en la convertissant en un dictionnaire ordonné.

Sortir:

Méthode 4: Conversion du XML en CSV en utilisant le module Untangle

Enfin et surtout, vous pouvez utiliser le module Python Untangle pour convertir XML en CSV. Démêler l'analyse d'un fichier XML et rend les données facilement disponibles, tout comme le fait XMLTodict. Étant donné que Untangle est également un module tiers, vous devez l'installer séparément via la commande PIP:

Le script qui suit importe les données d'un fichier XML, génère un CSV, puis utilise le module Untangle pour extraire les données du XML et l'écrire dans le CSV.

Sortir:

Conclusion

Dans ce tutoriel, nous avons discuté des multiples méthodes pour convertir XML en CSV dans Python. Comme nous l'avons montré, certaines bibliothèques de Python peuvent être utilisées pour la conversion XML à CSV. Vous pouvez en choisir l'un d'eux en fonction de votre exigence. Si tout ce que vous voulez faire est de convertir XML en CSV, le module Python intégré pour XML.Etree offre les meilleures performances. Cependant, XMLTodict est un outil extrêmement utile si vous avez également besoin de créer un fichier XML.