Schema是一个用于验证Pytho数据结构的库,比如从配置文件、表单、外部服务或者命令行解析到的,从JSON/YAML(或其他)转换为Pytho数据类型的库。
示例
这里有一个快速示例来感受Schema能做的事,验证具有个人信息的条目列表:
>>> from schema import Schema, Ad, Use, Optioal>>> schema = Schema([{'ame': Ad(str, le),... 'age': Ad(Use(it), lambda : 18 <= <= 99),... Optioal('sex'): Ad(str, Use(str.lower),... lambda s: s i ('male', 'female'))}])>>> data = [{'ame': 'Sue', 'age': '28', 'sex': 'FEMALE'},... {'ame': 'Sam', 'age': '42'},... {'ame': 'Sacha', 'age': '20', 'sex': 'Male'}]>>> validated = schema.validate(data)>>> assert validated == [{'ame': 'Sue', 'age': 28, 'sex': 'female'},... {'ame': 'Sam', 'age': 42},... {'ame': 'Sacha', 'age' : 20, 'sex': 'male'}]如果数据有效,Schema.validate将返回验证的数据。
如果数据无效,Schema将引发SchemaError异常。










评论