<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Serializing arbitrary Python objects to JSON using __dict__</title>
	<link>http://www.marcstober.com/blog/2007/07/07/serializing-arbitrary-python-objects-to-json-using-__dict__/</link>
	<description>Information, Design &#038; Society // Marc Stober's blog</description>
	<pubDate>Sun, 07 Sep 2008 19:55:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>

	<item>
		<title>By: GreenTea</title>
		<link>http://www.marcstober.com/blog/2007/07/07/serializing-arbitrary-python-objects-to-json-using-__dict__/#comment-8467</link>
		<author>GreenTea</author>
		<pubDate>Fri, 10 Aug 2007 17:15:52 +0000</pubDate>
		<guid>http://www.marcstober.com/blog/2007/07/07/serializing-arbitrary-python-objects-to-json-using-__dict__/#comment-8467</guid>
					<description>Thank you for this post. It is definitely helping me today. Here are some code corrections and printing that may assist others.

#!/usr/bin/python
import sys, traceback, pdb

import simplejson

class Person:
        def __init__(self, name=None):
                if not name:
                        self.name = self.namepeople = [ Person('Marc'), Person('Rachel') ]
                else:
                        self.name = name

pdb.set_trace()

people = Person()
# Fails with error that Field class "is not JSON serializable"
#s = simplejson.dumps(fields)

# This is what we want.
print "-------------------------------------"
print "dumps"
print "-------------------------------------"
s = simplejson.dumps([p.__dict__ for p in people.namepeople])
print s

# Deserialize
print "-------------------------------------"
print "load clones"
print "-------------------------------------"
clones = simplejson.loads(s)
print clones

# Now give our clones some life
for clone in clones:
        p = Person()
        p.__dict__ = clone
        print "-------------------------------------"
        print "instantiate clones"
        print "-------------------------------------"
        print p
        print p.name</description>
		<content:encoded><![CDATA[<p>Thank you for this post. It is definitely helping me today. Here are some code corrections and printing that may assist others.</p>
<p>#!/usr/bin/python<br />
import sys, traceback, pdb</p>
<p>import simplejson</p>
<p>class Person:<br />
        def __init__(self, name=None):<br />
                if not name:<br />
                        self.name = self.namepeople = [ Person(&#8217;Marc&#8217;), Person(&#8217;Rachel&#8217;) ]<br />
                else:<br />
                        self.name = name</p>
<p>pdb.set_trace()</p>
<p>people = Person()<br />
# Fails with error that Field class &#8220;is not JSON serializable&#8221;<br />
#s = simplejson.dumps(fields)</p>
<p># This is what we want.<br />
print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
print &#8220;dumps&#8221;<br />
print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
s = simplejson.dumps([p.__dict__ for p in people.namepeople])<br />
print s</p>
<p># Deserialize<br />
print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
print &#8220;load clones&#8221;<br />
print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
clones = simplejson.loads(s)<br />
print clones</p>
<p># Now give our clones some life<br />
for clone in clones:<br />
        p = Person()<br />
        p.__dict__ = clone<br />
        print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
        print &#8220;instantiate clones&#8221;<br />
        print &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8221;<br />
        print p<br />
        print p.name</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: John</title>
		<link>http://www.marcstober.com/blog/2007/07/07/serializing-arbitrary-python-objects-to-json-using-__dict__/#comment-12243</link>
		<author>John</author>
		<pubDate>Thu, 20 Mar 2008 05:34:44 +0000</pubDate>
		<guid>http://www.marcstober.com/blog/2007/07/07/serializing-arbitrary-python-objects-to-json-using-__dict__/#comment-12243</guid>
					<description>Marc, I definitely agree with your approach.  I was working on a similar solution when I saw your post.  I just released an alpha version of a library for handling more complex object serialization, jsonpickle (http://code.google.com/p/jsonpickle/).  

Cheers</description>
		<content:encoded><![CDATA[<p>Marc, I definitely agree with your approach.  I was working on a similar solution when I saw your post.  I just released an alpha version of a library for handling more complex object serialization, jsonpickle (http://code.google.com/p/jsonpickle/).  </p>
<p>Cheers</p>
]]></content:encoded>
				</item>
</channel>
</rss>
