Я хочу кодировать объекты в JSON. Но я не могу понять, как сделать вывод без вытеснения строки.
import json
class Abc:
def __init__(self):
self.name="abc name"
def toJSON(self):
return json.dumps(self.__dict__, cls=ComplexEncoder)
class Doc:
def __init__(self):
self.abc=Abc()
def toJSON(self):
return json.dumps(self.__dict__, cls=ComplexEncoder)
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Abc) or isinstance(obj, Doc):
return obj.toJSON()
else:
return json.JSONEncoder.default(self, obj)
doc=Doc()
print doc.toJSON()
Результат (дампы возвращают строковое представление, поэтому "экранируются" )
{"abc": "{\"name\": \"abc name\"}"}
Я хочу что-то немного другое. Ожидаемый результат:
{"abc": {"name": "abc name"}"}
Но я не вижу, как... Любой намек?
заблаговременно.