严格检查json模式是否有效
perfect-jsonschema的Python项目详细描述
完美的jsonschema
因为软验证不够
为什么
JSON schema standard及其实现表明,如果您的模式中有一些不熟悉的内容,那么这不是一个错误。特别是,如果你犯了错,或者使用了你认为有效的东西,你就不会出错。例如,这一个完全正确有效:
{
"required": ["company"],
"type": "object",
"propertie": {"company": {"pattern": "^(Apple)$"}, "format": "url"},
}
但我们想抓住那些propertie
的拼写错误和无效的url
formats。
库依赖于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
贡献
欢迎任何贡献