Manipuler des données XML sans recourir à un excès d'architecture

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
53
Mois de parution
mars 2011
Domaines


Résumé
Le but de cet article est de présenter les particularités spécifiques avec lesquelles Python aborde le XML et de voir comment transformer ces données en n'utilisant, comme pour CSV, LDAP, SQL, que les deux types de base (liste et dictionnaire) de manière à pouvoir les utiliser en combinaison avec des données en provenance de LDAP, d'une base de données relationnelle ou d'un fichier CSV, vus dans de précédents articles.Cet article fait suite au précédent qui abordait le format XML, les schémas et la validation. Le principal exercice de l'article est de sélectionner une partie des données du fichier XML présenté dans le précédent article pour les écrire sous forme de liste de dictionnaires.

1. Outils permettant d'appréhender le XML avec SAX

1.1 Présentation de SAX

Il s'agit d'une interface de programmation (Simple API for XML) initialement faite pour le langage JAVA, mais étendue à d'autres langages. SAX a une manière très spécifique d'appréhender un document XML : il traite les éléments l'un après l'autre, au fur et à mesure qu'ils sont rencontrés, et appelle pour chacun une fonction de rappel correspondante.

Cette méthode a pour avantage considérable de n'utiliser que peu de mémoire vive, puisque seul l'élément courant traité est stocké. Le développeur peut cependant choisir de conserver en mémoire les éléments qui l'intéressent.

1.2 API SAX allégée

Voici un exemple court reposant sur le fichier XML présentant les départements, ci-dessus. L'exercice récurrent de cet article sera de convertir certaines des données en une liste de dictionnaires, de manière à ce que ces données puissent par la suite être écrites dans un fichier CSV.

En...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Réinvention de la roue... des temporisations

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

Les temporisations sont essentielles au sein des systèmes d'exploitation et dans certaines applications, pour déclencher des actions à l'échéance d'un délai. Il existe différents algorithmes pour les gérer de manière efficace. Cet article présente la fusion de deux d'entre eux, pour en tirer le meilleur.

Mesure fine de déplacement par RADAR interférométrique à synthèse d’ouverture (InSAR) par radio logicielle

Magazine
Marque
GNU/Linux Magazine
Numéro
244
Mois de parution
janvier 2021
Domaines
Résumé

Nous avons démontré dans le premier article de la série la capacité à mesurer la distance à une cible (range compression), puis dans un deuxième temps à détecter l’angle d’arrivée du signal (azimuth compression). Fort de cette capacité de cartographier des cibles, nous allons conclure cette série sur la conception de RADAR à base de radio logicielle, et le traitement des signaux associé, par la mesure fine de déplacement des cibles par analyse de la phase (interférométrie) du signal, lors de la répétition des mesures.

Utilisation de l’IDE Visual Studio Code

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

Visual Studio Code, un outil dont Microsoft est à l’origine, est Open Source et gratuit, multiplateforme et ouvert grâce à son architecture d’extensions. Mis à jour mensuellement, il est écrit par des développeurs pour des développeurs.

La surcharge ou overloading en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines
Résumé

On vous l’a dit et répété : Python est un langage à typage dynamique ! Ah... donc, on ne peut pas réaliser de surcharge de fonctions ou de méthodes ? Pour les débutants, on dira non, pour les autres, on peut toujours s’arranger avec Python...

Accélérez vos traitements en développant votre propre solution de parallélisation

Magazine
Marque
GNU/Linux Magazine
Numéro
244
Mois de parution
janvier 2021
Domaines
Résumé

Certains de vos traitements lancés par des scripts shell s'exécutent bien trop lentement à votre goût, alors que certaines tâches séquentielles pourraient en fait s'exécuter simultanément : cet article va vous montrer de façon détaillée comment les accélérer en les parallélisant.