严格检查json模式是否有效

perfect-jsonschema的Python项目详细描述


完美的jsonschema

Build Statuscodecov

因为软验证不够

为什么

JSON schema standard及其实现表明,如果您的模式中有一些不熟悉的内容,那么这不是一个错误。特别是,如果你犯了错,或者使用了你认为有效的东西,你就不会出错。例如,这一个完全正确有效:

{
    "required": ["company"],
    "type": "object",
    "propertie": {"company": {"pattern": "^(Apple)$"}, "format": "url"},
}

但我们想抓住那些propertie的拼写错误和无效的urlformats

库依赖于jsonschema,并支持忽略其他关键字。

功能

从模式派生草稿,如果:

  • 架构为空
  • 模式包含的关键字不是jsonschema实现或extended_keywords集的一部分
  • 架构包含无效的格式值
  • 架构失败,出现jsonschema.check_schema()

用法

from perfect-jsonschema import check

try:
    check(schema, extended_keywords={"tag"})
except Exception as e:
    do_something()

例外示例:

Traceback (most recent call last):
    f"Schema contains invalid keywords for "
jsonschema.exceptions.SchemaError: Schema contains invalid keywords for http://json-schema.org/draft-07/schema#:
{'propertie', 'company'}

地方发展

pipenv install --dev
pipenv shell
tox

贡献

欢迎任何贡献

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用毕加索在imageView上使用java包装内容   java加载消息未隐藏在Recyclerview 安卓中   java Azure Android CloudAppendBlob在尝试查看数据时导致错误409(冲突)   java Intellij Maven变量   java无法在某些通知后接收pushnotification   java如何防止两个按钮同时设置动画?   将Java映像适配到JFrame中   java Spring在使用多个数据源时遇到批处理问题,面临IllegalStateException:无法打开事务的JPA EntityManager:已存在值   安卓 kotlin协同程序可以像java定时器一样使用吗?   用Java程序查询iPhone联系人   实现多个接口的JavaSpringbean   java无法获取colorchooser以更改线条颜色   java如何使用SpringMVC4和HibernateValidator正确设置验证?   日志我如何使用和管理日志[Log4j]java?   java我应该在哪里声明代码中的字段以便编译?   java为什么我不能移动我的角色?   Java Point类move()与setLocation()的比较   检索自签名jar的证书时出现java问题