反序列化时的 Marshmallow 字段查找

Marshmallow field lookup on deserialisation

是否可以使用 marshmallow 模式执行输入数据查找?以下不起作用.. :

class ParentSchema(Schema):
    child_name = fields.String(data_key="child.fname")

然后在反序列化过程中:

data = {"child": {"fname": "John", "lname": "Doe"}}
ParentSchema().load(data)

结果是{}

marshmallow-v3.14.1

您可以使用 fields.Function 实现此目的:

class ParentSchema(Schema):
    child_name = fields.Function(data_key="child",
                                 deserialize=lambda child: child["fname"])

data = {"child": {"fname": "John", "lname": "Doe"}}
ParentSchema().load(data)

结果是{'child_name': 'John'}