serialize a class to XML and back

Roy Smith roy at panix.com
Sun May 26 16:48:21 EDT 2013


In article <mailman.2197.1369600623.3114.python-list at python.org>,
 Chris Rebert <clp2 at rebertia.com> wrote:

> On May 23, 2013 3:42 AM, "Schneider" <js at globe.de> wrote:
> >
> > Hi list,
> >
> > how can I serialize a python class to XML? Plus a way to get the class
> back from the XML?
> 
> There's pyxser: http://pythonhosted.org/pyxser/
> 
> > My aim is to store instances of this class in a database.
> 
> Honestly, I would avoid XML if you can. Consider using JSON (Python
> includes the `json` module in the std lib) or pickle instead. Compared to
> XML: The former is more standardized (in the context of serializing
> objects) and less verbose; the latter is more efficient (if you don't care
> about cross-language accessibility); both have more convenient APIs.

Some other points...

If you care about efficiency and want to use json, don't use the one 
that comes packaged with the standard library.  There are lots of 
third-party json packages (ujson is the one we use) which are 
significantly faster.  Not sure if that's true of the newest python 
releases, but it was certainly true in 2.6.

The advantage of pickle over json is that pickle can serialize many 
types of objects that json can't.  The other side of the coin is that 
pickle is python-specific, so if you think you'll ever need to read your 
data from other languages, pickle is right out.



More information about the Python-list mailing list