通过继承从 Python 类 创建 JSON

Create JSON from Python classes with inheritence

我正在尝试使用具有继承性的 python 类 重新创建以下 JSON :

{"attribute1": "c1"
"attribute2": {"attribute3" : "test"}
}

到目前为止我有这个代码:

class class1():
    def __init__(self, attribute1):
        self.attribute1 = attribute1

class class2(class1):
    def __init__(self, attribute2):
        class1.__init__(self, 'test')
        self.attribute2 = attribute2

c1 = class1('c1')
c2 = class2(c1)

print(json.dumps(c1.__dict__))

呈现:

{"attribute1": "c1"}

如果我尝试将变量 c2 转换为 JSON:

print(json.dumps(c2.__dict__))

我收到错误:

TypeError: Object of type class1 is not JSON serializable

不应该 class1 是可序列化的,因为我之前使用 print(json.dumps(c1.__dict__))

转换它

Shouldn't class1 be serializable as I convert it previously using print(json.dumps(c1.dict))

这不是 JSON 的工作方式。它希望在每个级别找到一本字典。当你 运行, json.dumps(c2.__dict__) 时,你已经帮助它找到了 c2' 的字典,但你还没有告诉它如何找到 [=19] 的字典=]c1。它不会记住你之前对 json.dumps(c1.__dict__)

的调用

I'm attempting to recreate the following JSON using python classes with inheritance

这可能不会一帆风顺。嵌套 JSON 个模型 HAS-A relationships while inheritance models IS-A relationships.