Возможный дубликат:
Python сериализуемые объекты json
Мне нужно знать, как преобразовать динамический объект python в JSON. Объект должен иметь возможность иметь несколько дочерних объектов объектов уровня. Например:
class C(): pass
class D(): pass
c = C()
c.dynProperty1 = "something"
c.dynProperty2 = { 1, 3, 5, 7, 9 }
c.d = D()
c.d.dynProperty3 = "d.something"
# ... convert c to json ...
Используя python 2.6 следующий код:
import json
class C(): pass
class D(): pass
c = C()
c.what = "now?"
c.now = "what?"
c.d = D()
c.d.what = "d.what"
json.dumps(c.__dict__)
выдает следующую ошибку:
TypeError: <__main__.D instance at 0x99237ec> is not JSON serializable
Я не знаю, какие типы подобъектов пользователь может вставить в c
. Есть ли решение, достаточно умное, чтобы определить, является ли атрибут объектом и его синтаксический анализ __dict__
автоматически?
ОБНОВЛЕНО для включения подобъектов на c
.