我有下一个模式和数据:
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
。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐