动机
验证数据是否符合规范是很有用的,比如:
- 用于单元测试
- 用于验证用户提交的数据是否合法
简介
schema
是一个用来验证python数据结构的库。
可以用来验证诸如:
- 配置文件
- 表单
- 外部服务
- 命令行解析
- JSON/YAML转换后的数据
用法
这个库相对于jsonschema
,看起来更加的pythonic,也更加通用。后者使用js形式的字符串来注解,在很多idel里面甚至没有高亮提示。
>>> from schema import Schema, And, Use, Optional>>> schema = Schema([{'name': And(str, len),... 'age': And(Use(int), lambda n: 18 <= n <= 99),... Optional('gender'): And(str, Use(str.lower),... lambda s: s in ('squid', 'kid'))}])>>> data = [{'name': 'Sue', 'age': '28', 'gender': 'Squid'},... {'name': 'Sam', 'age': '42'},... {'name': 'Sacha', 'age': '20', 'gender': 'KID'}]>>> validated = schema.validate(data)>>> assert validated == [{'name': 'Sue', 'age': 28, 'gender': 'squid'},... {'name': 'Sam', 'age': 42},... {'name': 'Sacha', 'age' : 20, 'gender': 'kid'}]
个人评分
类型 | 评分 |
---|---|
实用性 | ⭐️⭐️⭐️ |
易用性 | ⭐️⭐️⭐️ |
有趣性 | ⭐️⭐️ |