i ont la fonction suivante, qui doe un travail de base de la cartographie un objet lxml à un dictionnaire ...comment mapper vers un dictionnaire plutôt qu'une liste?
from lxml import etree
tree = etree.parse('file.xml')
root = tree.getroot()
def xml_to_dict(el):
d={}
if el.text:
print '***write tag as string'
d[el.tag] = el.text
else:
d[el.tag] = {}
children = el.getchildren()
if children:
d[el.tag] = map(xml_to_dict, children)
return d
v = xml_to_dict(root)
au moment où il me donne ....
>>>print v
{'root': [{'a': '1'}, {'a': [{'b': '2'}, {'b': '2'}]}, {'aa': '1a'}]}
mais je aimerait ....
>>>print v
{'root': {'a': ['1', {'b': [2, 2]}], 'aa': '1a'}}
comment puis-je réécris la fonction xml_to_dict (el) de sorte que je reçois la sortie nécessaire?
Voici le xml que je suis en train d'analyser, pour plus de clarté.
<root>
<a>1</a>
<a>
<b>2</b>
<b>2</b>
</a>
<aa>1a</aa>
</root>
merci :)
L'utilisation d'un dictionnaire ne permettra sur l'élément avec la clé a ou b comment voulez-vous que - à-dire mieux pour montrer ce que votre puissance requise est – Mark
ont reformulé la question à inclure nécessaire sortie - merci Mark – significance