Я хочу кодировать объекты в 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"}"}
Но я не вижу, как... Любой намек?
заблаговременно.