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