Дуршлаг python не проверяет другие поля?

Я определил класс

class Person(colander.MappingSchema):
    name = colander.SchemaNode(colander.String())
    age = colander.SchemaNode(colander.Int()

и у меня есть приближающаяся строка json, которая может быть такой:

{
     'name': 'keith',
     'age': '20',
     'friends': [('1', 'jim'), ('2', 'bob'), ('3', 'joe'), ('4', 'fred')],
     'phones': [{'location': 'home', 'number': '555-1212'},
            {'location': 'work', 'number': '555-8989'}],
     ...
}

Я хочу только проверить name и age, и меня не интересуют другие поля (и я не знаю всех других возможных полей). Есть ли способ проверить только два поля, игнорируя другие?


person Justin Li    schedule 03.11.2017    source источник


Ответы (1)


Когда вы говорите игнорировать другие поля, вы имеете в виду просто удалить их из полученного словаря после десериализации?

Если да, то да, это поведение по умолчанию. При десериализации автоматически удаляются все ключи, которые не соответствуют заданной схеме. Там, если ты это сделаешь

result = Person().deserialise(<your sample dictionary>)

Результатом vairable будет просто словарь, содержащий ключи name и age.

person Mr-F    schedule 11.03.2018