Зефир Python: ВКЛЮЧИТЬ конкретный параметр - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть следующая схема и данные:

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.']}

Что я хочу сделать: Я не хочу брать еще 1 дополнительных конкретных параметров. Я не хочу создавать новую схему, потому что она мне нужна только в одном месте. Кроме того, я не хочу менять эту схему (добавить этот параметр) также потому, что она мне нужна только в одном месте моего кода. Я нашел следующее решение:

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

Добавляет все неизвестные параметры к данным. Но как я могу добавить только один конкретный, например:

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

Если неизвестное поле равно field17, оно добавляет его, в противном случае возникает ValidationError.

...