如何用棉花糖序列化嵌套对象?

时间:2020-06-17 17:56:08

标签: python flask marshmallow flask-marshmallow

我是不熟悉烧瓶/棉花糖的人,并且有一个看起来像这样的对象:

{'field_0': {'field_1': {'field_2': {'field_3': '...', 'value': 'this is the value I want'}}}}

是否可以使用蛋白软糖为此定义一个架构,而无需创建4个嵌套类?

1 个答案:

答案 0 :(得分:0)

不是真的。

这是规范的方法(删除2个级别以简化示例)

class Inner(ma.Schema):
    field_3 = ma.fields.IntField()
    value = ma.fields.StringField()

class Outer(ma.Schema):
    field_1 = ma.fields.Nested(Inner)

您可以使用from_dict

Outer = ma.Schema.from_dict("field_1": ma.fields.Nested(ma.Schema.from_dict("field_3": ma.fields.Int(), "value": ma.fields.String())

您还可以通过元编程发明复杂的方法(使用type来构建模式类),但是总的来说,最简单的方法是上面的第一个方法。