Python Marshmallow:包含特定参数

2024-10-03 00:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下一个模式和数据:

from marshmallow import Schema, fields, INCLUDE
class MarshmallowSchema(Schema):
    field1 = fields.Str()
    field2 = fields.Str()

json = {
    "field1":"string1",
    "field2":"string2"
}

data = MarshmallowSchema().load(json)

它按预期工作:检查所有文件,如果有任何新的未记录参数,则会引发错误:

json = {
    "field1":"string1",
    "field2":"string2",
    "field3":"string3"
}

data = MarshmallowSchema().load(json)
ValidationError: {'field3': ['Unknown field.']}

我想做的是: 我不想再多拿一个具体参数。我不想创建新的模式,因为我只需要在一个地方创建它。另外,我不想更改这个模式(添加这个参数),因为我只需要在代码中的一个地方使用它。 我找到了下一个解决方案:

data = MarshmallowSchema().load(json, unknown=INCLUDE)

它将所有未知参数添加到数据中。但是如何只添加一个特定的,例如:

data = MarshmallowSchema().load(json, unknown='field17')

如果未知字段是field17,它会添加它,否则会引发ValidationError。你知道吗


Tags: 数据jsonfieldsdata参数includeschema模式