XML à partir d'un dictionnaire Python
J'ai besoin d'utiliser Python 2.4.4 pour convertir du XML à partir d'un dictionnaire Python. Tout ce que je besoin sont les noms des nœuds et des valeurs, je ne suis pas inquiet sur les attributs, car le XML je suis d'analyse n'ont pas. Je ne peux pas utiliser ElementTree
car qui n'est pas disponible pour 2.4.4, et je ne peux pas utiliser la 3ème partie des bibliothèques en raison de mon environnement de travail. Quelle est la meilleure façon pour moi de faire cela? Existe-il des bons extraits?
Aussi, si il n'y a pas un moyen facile de faire cela, il y a un autre des formats de sérialisation que Python 2.4.4 a un support natif pour?
OriginalL'auteur Liam | 2010-07-20
Vous devez vous connecter pour publier un commentaire.
Question Sérialiser Python dictionnaire XML répertorie quelques méthodes de sérialisation XML. Que d'autres formats de sérialisation, je suppose que
pickle
module est un bel outil pour.OriginalL'auteur Grey Teardrop
J'ai récemment écrit un peu de code pour traduire les données XML en un python structure de données, bien que j'ai eu à gérer des attributs. J'ai utilisé
xml.dom.minidom
plutôt queElementTree
, pour une raison similaire. Je n'ai pas réellement testé sur Python 2.4.4, mais je pense que cela fonctionnera. Je n'ai pas écrit un inverse générateur XML, mais vous pouvez probablement utiliser la lispy_string' fonction que j'ai compris pour ce faire.J'ai aussi inclus quelques raccourcis spécifiques à l'application j'ai écrit (expliqué dans la docstring), mais vous pourriez trouver ces raccourcis utiles, de les sons de celui-ci. Essentiellement, un arbre xml, techniquement, se traduit par un dictionnaire des listes de dictionnaires de listes de dictionnaires de listes, etc. Je omettre la création de l'intermédiaire des listes, sauf s'ils sont nécessaires, de sorte que vous pouvez les éléments de référence par
dictname[element1][element2]
plutôt quedictname[element1][0][element2][0]
et ainsi de suite.Attribut de la manipulation est un peu encombrants, je recommande fortement de lire le code avant de faire quoi que ce soit avec des attributs.
J'ai modifié un peu pour inclure des fonctionnalités supplémentaires, et c'est ici, dans le pastebin.com/rtDQsR2j
génial! Merci!
OriginalL'auteur Doug F
Dicts en python ne sont pas ordonnées, ne l'oubliez pas. J'ai un code de base, qui est petit et ne nécessite pas de modules externes. La mauvaise, c'est qu'il ne prend pas en charge tout type d'attributs XML, mais vous avez dit
,si elle est ici:
Exemple d'utilisation:
Ce sera d'impression:
OriginalL'auteur Dmitry Horonitel
Pour la sérialisation d'un Python dict pour le format XML, Python suivant la classe fonctionne bien pour moi. Plus d'autres solutions, il a l'avantage qu'il est assez simple et qu'il n'bon encodage XML. Le script est basé sur cette réponse. Il n'a qu'une seule extension: En passant la
list_mappings
dictionnaire pour le constructeur, vous pouvez spécifier la manière dont un seul élément de la liste (unchild
à l'intérieur de lachildren
attribut dans l'exemple ci-dessous) est nommé.Il donne le résultat suivant:
OriginalL'auteur thomaskonrad
Gris du lien inclut certaines des solutions que l'air assez robuste. Si vous souhaitez annuler votre propre bien, vous pouvez utiliser le format xml.dom.nœud childNode membre de manière récursive, de la résiliation lorsque le noeud.childNode = None.
OriginalL'auteur Aaron Altman