jsonschema 是 Python 中 JSON Schema 规范的实现。
>>> from jsonschema import validate
>>> # A sample schema, like what we'd get from json.load()
>>> schema = {
... "type" : "object",
... "properties" : {
... "price" : {"type" : "number"},
... "name" : {"type" : "string"},
... },
... }
>>> # If no exception is raised by validate(), the instance is valid.
>>> validate(instance={"name" : "Eggs", "price" : 34.99}, schema=schema)
>>> validate(
... instance={"name" : "Eggs", "price" : "Invalid"}, schema=schema,
... ) # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
ValidationError: 'Invalid' is not of type 'number'通过安装 check-jsonschema 也可以从命令行使用。
- 完全支持 Draft 2020-12, Draft 2019-09, Draft 7, Draft 6, Draft 4 和 Draft 3
- 懒惰验证,可以迭代地报告*所有*验证错误。
- 可以以编程方式查询哪些属性或项未能通过验证。
jsonschema 在 PyPI 上可用。你可以使用 pip 安装:
$ pip install jsonschema
在安装包时,有两个 extras 可用,目前都与 format 验证相关:
formatformat-nongpl
安装时可以使用它们来包含额外的依赖项,例如:
$ pip install jsonschema'[format]'请注意,这些依赖项的存在——甚至是在 schema 中指定 format 检查——并*不会*激活格式检查(根据规范)。
有关更多详细信息,请阅读 格式验证文档。
当然,你也可以自由地使用你喜欢的测试运行器在一个版本上运行测试。
测试位于 jsonschema.tests 包中。
$ nox -s perf
否则,打开 GitHub discussion 或在 Stack Overflow 上提问是卡住时获得帮助的其他方式。
jsonschema 在 GitHub 上。
如果你有任何可以贡献的内容,请通过 GitHub 或其他方式联系我,非常欢迎!
如果你感到无比感激,也可以 赞助我。
对于那些欣赏 jsonschema 及其持续支持和发展的公司,现在也可以通过 TideLift 支持 jsonschema。