Convertir el objeto dynamic de python a json

Posible duplicado:
Objetos serializables Python json.

Necesito saber cómo convertir un objeto de python dynamic en JSON. El objeto debe poder tener objetos secundarios de objeto de niveles múltiples. Por ejemplo:

class C(): pass class D(): pass c = C() c.dynProperty1 = "something" c.dynProperty2 = { 1, 3, 5, 7, 9 } cd = D() cddynProperty3 = "d.something" # ... convert c to json ... 

Usando Python 2.6 el siguiente código:

 import json class C(): pass class D(): pass c = C() c.what = "now?" c.now = "what?" cd = D() cdwhat = "d.what" json.dumps(c.__dict__) 

produce el siguiente error:

 TypeError:  is not JSON serializable 

No sé qué tipos de subobjetos podría poner un usuario en c . ¿Existe una solución que sea lo suficientemente inteligente como para detectar si un atributo es un objeto y analizarlo es __dict__ automáticamente?

ACTUALIZADO para incluir subobjetos en c .

Especifique el parámetro por default= ( doc ) :

 json.dumps(c, default=lambda o: o.__dict__) 
 json.dumps(c.__dict__) 

Eso te dará un objeto JSON genérico, si eso es lo que buscas.

Trate de usar este paquete python-jsonpickle

Biblioteca de Python para serializar cualquier gráfico de objeto arbitrario en JSON. Puede tomar casi cualquier objeto de Python y convertir el objeto en JSON. Además, puede reconstituir el objeto de nuevo en Python.

json.dumps espera un diccionario como parámetro. Para una instancia c , el atributo c.__dict__ es un diccionario que asigna nombres de atributos a los objetos correspondientes.