zoukankan      html  css  js  c++  java
  • 【AMAD】schema -- 使用pythonic的方式进行schema验证

    动机

    验证数据是否符合规范是很有用的,比如:

    • 用于单元测试
    • 用于验证用户提交的数据是否合法

    简介

    schema1是一个用来验证python数据结构的库。

    可以用来验证诸如:

    • 配置文件
    • 表单
    • 外部服务
    • 命令行解析
    • JSON/YAML转换后的数据

    用法

    这个库相对于jsonschema2,看起来更加的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'}]
    

    个人评分

    类型评分
    实用性 ⭐️⭐️⭐️
    易用性 ⭐️⭐️⭐️
    有趣性 ⭐️⭐️
  • 相关阅读:
    Oracle 创建索引分区
    Shiro SessionManager会话管理器设计概念
    管理表分区
    Oracle 表分区策略
    Oracle 表分区
    参考Shiro的Session定期验证会话失效的线程池
    HDU 3555 Bomb (数位dp)
    POJ 3666 Making the Grade (动态规划)
    Gym
    POJ
  • 原文地址:https://www.cnblogs.com/thomaszdxsn/p/amadschema--shi-yongpythonic-de-fang-shi-jin-xings.html
Copyright © 2011-2022 走看看