[XML-SIG] looking for conversion from dictionary

Fredrik Lundh fredrik at pythonware.com
Wed Jun 6 11:26:35 CEST 2007


David Bear wrote:

> I google for 'convert python dictionary xml' but got way too many hits.
> 
> Anyone have any pointers for a quick way to have a python dictionary
> represented as xml? I want to have repr(pythondict) where
> <tagname>=keyname, and the contents of the tag is the value.

your problem is a bit underspecified (to say the least), but assuming 
well-formed string keys and string values, here's one way to do it:

 >>> d = dict(foo="Foo!", bar="Bar!")
 >>>
 >>> import xml.etree.ElementTree as ET
 >>> e = ET.Element("dict")
 >>> for k in d:
...     ET.SubElement(e, k).text = d[k]
...
 >>> ET.tostring(e)
'<dict><foo>Foo!</foo><bar>Bar!</bar></dict>'

if you want to support than just straightforward string/string mappings, 
you might want to look for XML serialization libraries instead. 
Python's standard xmlrpclib module can be used for this purpose:

 >>> import xmlrpclib

 >>> xmlrpclib.dumps((d,)) # dumps wants the data wrapped in a tuple
'<params>\n<param>\n<value><struct>\n<member>\n<name>foo</name>\n<value><string>
Foo!</string></value>\n</member>\n<member>\n<name>bar</name>\n<value><string>Bar
!</string></value>\n</member>\n</struct></value>\n</param>\n</params>\n'

see the library reference for details.

hope this helps!

</F>



More information about the XML-SIG mailing list