Python中JSON模式验证的实现
jsonschema-codelane的Python项目详细描述
jsonschema是JSON Schema的实现 对于Python(支持2.7+包括python3)。在
>>>fromjsonschemaimportvalidate>>># 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_DETAILTraceback(mostrecentcalllast):...ValidationError:'Invalid'isnotoftype'number'
也可以从控制台使用:
^{pr2}$特点
- 完全支持 Draft 7, Draft 6, Draft 4 和 Draft 3
- Lazy validation 它可以迭代地报告all验证错误。在
- Programmatic querying 其中的属性或项未通过验证。在
发行说明
v3.1支持ecma262方言正则表达式 按照规范的建议。大 感谢@Zac HD在新的js-regex库中提供创作支持。在
运行测试套件
如果您安装了tox(可能通过pip install tox或 包管理器),在源目录中运行tox 签出将在所有版本上运行jsonschema的测试套件 对Pythonjsonschema的支持。如果你没有 在jsonschema下测试的版本,您可能希望运行 使用tox的--skip-missing-interpreters选项。在
当然,您也可以使用 最喜欢的测试运行程序。测试位于jsonschema.tests包中。在
基准
jsonschema的基准测试使用了pyperf。在
运行它们可以通过tox -e perf,或者调用pyperf 外部命令(确保它和jsonschema本身都是 已安装):
$ python -m pyperf jsonschema/benchmarks/test_suite.py --hist --output results.json
要与上一次运行进行比较,请使用:
$ python -m pyperf compare_to --table reference.json results.json
有关详细信息,请参阅pyperf文档。在
贡献
我是朱利安·伯曼。在
jsonschema在GitHub上。在
通过GitHub或其他方式联系,如果你有什么贡献, 那将是最受欢迎的!在
您也可以在Freenode(nick:tos9)上找到我 频道,包括#python。在
如果你感激不尽,你也可以用啤酒钱来讨好我 在我的GitHub个人资料中通过谷歌支付。在
感谢那些对jsonschema及其持续支持的公司 而增长,jsonschema现在也可以通过TideLift来支持。在
- 项目
标签: