首页 > 解决方案 > Marshmallow:使用 load({}).data 反序列化嵌套字段

问题描述

我看到以前有人问过这种情况,所以提前为这个重复的情况道歉。我正在尝试反序列化具有嵌套字段的模式。这是一个例子:

class _SpeedSchema(marshmallow.Schema):
    level = fields.Integer(missing=10)

class ParentSchema(marshmallow.Schema):
    id = fields.String(missing='fake_id')
    datetime = fields.Integer(missing=int(common.get_current_utc_time()))
    speed = fields.Nested(_SpeedSchema, many=True)

接下来,我继续使用 Python 控制台从 ParentSchema 加载,如下所示 ParentSchema().load({}).data。结果,我得到以下输出

{'id': 'fake_id', 'datetime': 1580482336929}

我期待嵌套字段:速度包含在此输出中,因为它的级别已经分配了值10 。所以输出应该是这样的:

{'id': 'fake_id', 'datetime': 1580482336929, 'speed': {'level': 10}}

我们如何在这个输出中包含嵌套字段?任何有关示例代码的帮助将不胜感激!谢谢!

标签: pythonmarshmallow

解决方案


推荐阅读