import re
from schema import Schema, Use, And, Or, Optional, Regex
# 定长判断
res = Schema(lambda x: len(x) == 1).validate('8')
# 模型字典
res2 = Schema({"name": str, "age": int}).validate({"name": '18', "age": 18})
print(res, res2)
# 对集合元素类型验证 元素类型满足int或float之一即可 list元素类型必须相同
print(Schema([int, float]).validate([1, 2, 3, 4]))
# Use 自动帮你转换它的值
test_num = Schema(Use(int)).validate('10')
print(test_num, type(test_num))
# And 是否满足多个条件进行验证
and_test = Schema(And(str, lambda x: len(x) == 6)).validate('123456')
print(and_test)
# Or 对是否满足其中一个条件进行验证
or_test = Schema(Or(int, lambda x: len(x) == 6)).validate(123)
print(or_test)
# Optional 可选验证
optional_test = Schema({"name": str, Optional("age"): int}).validate({"name": "laozhang"})
print(optional_test)
# 忽略多的字段
Schema({"name": str, "age": int}, ignore_extra_keys=True).validate({"name": "laozhang", "age": 18, "addr": "广东"})
# 正则验证 flags=re.I忽略大小写
Regex('[A-Z]+', flags=re.I).validate('football')
# 换一种写法
Schema(Regex('^foo')).validate('football')
# 错误自定义
print(Schema(int, error='只能是整数类型').validate('abc'))
Python 验证模块(schema)使用 【快速上手】
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...