小编Fre*_*ent的帖子

在JSON中编码嵌套的python对象

我想用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()
Run Code Online (Sandbox Code Playgroud)

结果是(转储返回一个字符串表示,这就是"被转义"的原因)

{"abc": "{\"name\": \"abc name\"}"}
Run Code Online (Sandbox Code Playgroud)

我想要一些不同的东西.预期的结果是

{"abc": {"name": "abc name"}"}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何...任何提示?

提前致谢.

python json encode

34
推荐指数
4
解决办法
4万
查看次数

标签 统计

encode ×1

json ×1

python ×1