0

我定义了一个类

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

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

4

1 回答 1

0

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

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

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

结果变量将只是一个包含键name和的字典age

于 2018-03-11T21:45:51.127 回答