python漏勺不验证其他字段?

时间:2017-11-03 18:42:40

标签: python colander

我定义了一个类

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

我只想验证nameage,我不关心其他字段(而且我不了解所有其他可能的字段)。有没有办法只忽略其他字段来验证这两个字段?

1 个答案:

答案 0 :(得分:0)

当你说忽略其他字段时,你的意思是在反序列化之后将它们从结果字典中删除吗?

如果是,则是,这是默认行为。反序列化将自动删除任何不映射到定义的模式的键。如果你这样做

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

结果vairable只是一个包含键nameage的字典。