跳转到主要内容

严格检查JSON模式是否有效

项目描述

perfect-jsonschema

Build Status codecov

因为软验证还不够

为什么

JSON模式标准及其实现表明,如果您在模式中遇到不熟悉的内容,它不是错误。特别是,如果您不小心输入了错误或使用了您认为可以工作的内容,您不会收到错误。例如,这个是完美无缺且有效的

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

但我们要捕捉那些propertie拼写错误和无效的url 格式

该库依赖于jsonschema并支持忽略额外的关键词。

特性

从模式中推导出草案,并在以下情况下抛出jsonschema.SchemaError异常:

  • 模式为空
  • 模式包含一个不是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 https://json-schema.fullstack.org.cn/draft-07/schema#:
{'propertie', 'company'}

本地开发

pipenv install --dev
pipenv shell
tox

贡献

欢迎任何贡献

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

perfect-jsonschema-2019.2.6.tar.gz (11.7 kB 查看哈希值)

上传时间 源代码

构建版本

perfect_jsonschema-2019.2.6-py3-none-any.whl (4.5 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面