J'ai une question liée à certaines directives pour résoudre un problème. J'ai avec moi un fichier XML, je dois le remplir dans un système de base de données (tout ce qui pourrait être SQLite, MySQL) à l'aide de la langue de script: Python. P>
Quelqu'un a-t-il une idée de la façon de procéder? P>
J'ai déjà essayé d'analyser XML à l'aide de la méthode des arbres et de saxe dans une autre langue, mais de commencer avec Python, je ne sais pas où commencer. Je sais déjà comment concevoir la base de données dont j'ai besoin. p>
Une autre question, est python seul possible d'exécuter la base de données DDL DDL? P>
4 Réponses :
Si vous êtes habitué à DOM (arborescence) Accès à XML à partir d'une autre langue, vous pouvez trouver utile ces modules de bibliothèque standard (et leurs documents respectifs): P>
Pour enregistrer les données THA sur DB, vous pouvez utiliser le module standard SQLITE3 ou rechercher une liaison à MySQL. Ou vous souhaiterez peut-être utiliser quelque chose de plus abstrait, comme Sqlalchemy ou ORM de Django. P>
Je vous recommande d'étudier sur Wellementtree pour l'analyse de votre fichier XML dans la mémoire (analysez-le Tout, puis émettez-le tout à un dB SQL, est probablement plus facile, mais l'élément-élément permet également une opération incrémentielle si votre fichier est énorme) - il fait partie de la bibliothèque python standard comme module xml.etree . P>
Je recommande SQLite3 (également dans la norme Bibliothèque Python) comme le DB relationnel de choix (si vous avez le choix), encore une fois parce que c'est pratique et facile - le DB relationnel intégré SQLite intégré sous-jacent est également bien documenté à son propre site . Si vous avez besoin d'un didacticiel général sur la façon dont Python aime se mêler à des DBS relationnels (DB-API »), il y a une belle ici . p>
Une fois que vous comprenez parfaitement etree et sqlite3 - et vous n'avez pas nécessairement besoin d'installer et oui, vous pouvez parfaitement bien faire créer une table code> et d'autres requêtes DDL à partir de
sqlite3 code> (et tout autre module de python compatible DB-API, si vous choisissez d'utiliser d'autres DBS relationnels; -). P>
+1 pour me faire remarquer à Elementtree. p.s. "DLL interroge" une faute de frappe et censé être "requêtes DDL" comme dans la langue de définition de données?
Vous pouvez tout faire à la main avec (Peut-être que ce n'est pas votre besoin. Mais c'est pratique) p> sqlite3 code> et
xmlstarlet code>.
Je sais que c'est un ancien poste, mais je pense que cela vaut la peine de noter de faire référence aux futurs visiteurs qui ont besoin d'une solution ponctuelle: la manière la plus simple que j'ai trouvée était d'utiliser https://help.libreoffice.org/LaTest /lo/text/scalc/01/xml_source.html p>
Une fois importé dans ODS, on peut l'enregistrer facilement en tant que CSV (c.-à-d. Importer sur SQLite), mais que la feuille de documents ouverte peut-elle suffire à elle-même dans de nombreux cas les besoins de l'utilisateur, c'est-à-dire à l'aide de la fonction de filtre automatique code> pour rechercher et filtrer les données. Je n'avais aucun problème à traiter 15k lignes. P>
Si la tâche doit être effectuée à plusieurs reprises, elle doit être scripté et les bibliothèques Python sont un bon moyen de le faire. Cependant, j'ai eu des problèmes avec Données code> ->
source XML code> fonction. P>
xml.tree code> et dans mon cas libreoffice était un ajustement parfait. P>