安装 github地址
pip install schma
基本用法
import schema
schema.Schema(xxx).validate(data)
# 其中参数xxx可以是:
# 基本数据类型::比如int/float/list/tuple/set/str等。
# 函数: list, tuple, set, frozenset, dict实例
# 某个重写了validate方法的类: 比如Use
验证失败报 SchemaError 异常,需要自己处理
try:
# 判断是否为 int 类型数据
result = schema.Schema(int).validate(12.3)
except schema.SchemaError as e:
# 验证失败则是抛出 SchemaError 异常
print "异常:", str(e)
先进行转换在验证
schema.Schema(Use(int)).validate('123')
参数是容器类型
schema.Schema([1, 0]).validate([1, 1, 0, 0]) # 数据只能是1,0
验证字典的key, value
schema.Schema({'name': str, 'age': lambda n: 10 < n < 99}).validate({'name': 'abc', 'age': 14})
部分键值验证, 不用验证的部分写object即可
schema.Schema({'name': str, str: object}).validate({'name': '0', 'aa': 'da'})
Optional 可选: dd可以不存在,但存在必须是int类型
schema.Schema({'name': str, Optional('dd'): int}).validate({'name': 'Sam', 'dd': 1})
And 与
schema.Schema({'age': And(int, lambda n: 0 < n < 100)}).validate({'age': 7})
Or 或
schema.Schema(And(Or(int, float), lambda x: x > 0)).validate(3.6)