• 动机
  • 简介
  • 用法
  • 个人评分

动机

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

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

简介

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'}]

个人评分

类型 评分
实用性 ⭐️⭐️⭐️
易用性 ⭐️⭐️⭐️
有趣性 ⭐️⭐️

  1. Github Repo ↩

  2. Github: jsonschema ↩

转载于:https://www.cnblogs.com/thomaszdxsn/p/amadschema--shi-yongpythonic-de-fang-shi-jin-xings.html

【AMAD】schema -- 使用pythonic的方式进行schema验证相关推荐

  1. json schema多种形式_什么是JSON Schema?及其应用方式......

    如果你曾经使用过XML Schema,RelaxNG或ASN.1,那么你很可能已经知道什么是JSON Schema,并且可以跳过本文的阅读.如果你是头一次听说,或者听过过这个词汇但不了解,那么你来对地 ...

  2. json schema多种形式_什么是JSON Schema?

    什么是JSON Schema? 如果你曾经使用过XML Schema,RelaxNG或ASN.1,那么你很可能已经知道什么是JSON Schema,并且可以跳过本文的阅读.如果你是头一次听说,或者听过 ...

  3. Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法

    Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法 参考文章: (1)F ...

  4. Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法

      标签: dubboxmleclipse 2014-10-31 10:25  15976人阅读  评论(0)  收藏  举报 目录(?)[+] 我们公司使了阿里的dubbo,但是阿里的开源网站htt ...

  5. 域的非验证方式还原与验证方式还原的区别

    救急:一台服务器要重装系统,怎么份域用户信息 在Windows2000中,备份与恢复Active Directory是一项非常重要的工作.在NT中,所有有关用户和企业配置方面的信息都存储在注册表中,因 ...

  6. 使用优雅方式对参数验证进行处理

    我们在一般的接口函数开发中,为了安全性,我们都需要对传入的参数进行验证,确保参数按照我们所希望的范围输入,如果在范围之外,如空值,不符合的类型等等,都应该给出异常或错误提示信息.这个参数的验证处理有多 ...

  7. SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方...

    1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TE ...

  8. 转52破解jiangwei212Android爆破应用签名的一种全新高效方式(Native+服务器验证)

    原文地址:Android爆破应用签名的一种全新高效方式(Native+服务器验证) http://www.52pojie.cn/thread-606272-1-1.html (出处: 吾爱破解论坛) ...

  9. Spark-sql:以编程方式执行Spark SQL查询(通过反射的方式推断出Schema,通过StrutType直接指定Schema)

    1.编写Spark SQL查询语句 在这之前创建Maven项目.创建的过程如:http://blog.csdn.net/tototuzuoquan/article/details/74571374 在 ...

  10. oracle同库复制schema,使用impdp复制oracle的schema数据迁移 | 学步园

    测试环境: 源: windows 2003, oracle 10202 目标:windows 2000, oracle 10203 注:本文中所说的 schema 和 user 是一个意思. impd ...

最新文章

  1. [leetcode][math] Add Digits
  2. Linux:Swap分区
  3. oracle学习数据,oracle学习中的一些心得
  4. Graphics在java的哪个包_如何在Java中成功扩展Graphics
  5. 如何设计日志系统_架构 - 如何设计一个百亿级日志系统
  6. Linux下Jenkins与GitHub自动构建NetCore与部署
  7. [NOI2012]美食节
  8. SkinSharp用法
  9. cisco最经典书籍 下载(全CCIE们的结晶)转载资料
  10. 移动Web利器transformjs入门
  11. 强化学习DQN算法实战之CartPole
  12. Euclidean, Manhattan, hop-count distance 区别
  13. Visual C++ 2005 系列课程学习笔记-6
  14. QT 基于饼状图的一个抽奖系统
  15. 罗技鼠标驱动怎么下载?
  16. linux怎么看本机ip,linux下查看本机IP的两种方法
  17. linux vi 拷贝多行,vi 整行 多行 复制与粘贴
  18. 【演歌】北の漁場 (北方的渔场) 歌词翻译
  19. 紫光同创国产FPGA学习之器件情况
  20. 云服务器和云虚拟主机有什么区别

热门文章

  1. Spring AOP(二)之AfterReturning增强处理
  2. 软件工程期末考试复习(二)
  3. 「CodePlus 2017 11 月赛」Yazid 的新生舞会(树状数组/线段树)
  4. 20171018校内训练
  5. Python高级特性:Python迭代、生成器、列表生成式
  6. MyEclipse控制台报错:java.lang.OutOfMemoryError: PermGen space
  7. 【转】中间语言(IL)和即时编译器(JIT)的关系剖析
  8. [转]CG编程概念 ,及CG编译器与VC6.0集成方法
  9. [转]VC 键盘虚拟码
  10. JS获取页面 GET 方式请求的参数