python中json模式验证的实现

jsonschema的Python项目详细描述


PyPI versionSupported Python versionsTravis build statusAppVeyor build statusCodecov Code coverageReadTheDocs status

jsonschemaJSON Schema的实现 对于python(支持2.7+包括python 3)。

>>>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'

也可以从控制台使用:

$ jsonschema -i sample.json sample.schema

功能

安装

jsonschemaPyPI上可用。您可以使用pip

$ pip install jsonschema

演示

在此联机演示中以交互方式尝试jsonschema

Open Live Demo

在线演示笔记本与此类似:

Open Live Demo

发行说明

版本3.0支持草案7(和6)。重新定义的接口 还对类型进行了主要的检查,以支持对 验证程序将接受或允许的类型。

jsonschema现在也通过appveyor在windows下测试。

感谢所有一路上提出请求的人。

运行测试套件

如果您安装了tox(可能通过pip install tox或 包管理器),在源目录中运行tox。 签出将在所有版本上运行jsonschema的测试套件 python的jsonschema支持。如果你没有所有的 在jsonschema下测试的版本,您可能希望运行 使用tox--skip-missing-interpreters选项。

当然,您也可以使用 最喜欢的测试运行程序。测试存在于jsonschema.tests包中。

基准

jsonschema的基准使用perf

运行它们可以通过tox -e perf或通过调用perf 外部命令(在确保它和jsonschema本身都是 已安装):

$ python -m perf jsonschema/benchmarks/test_suite.py --hist --output results.json

要与上一次运行进行比较,请使用:

$ python -m perf compare_to --table reference.json results.json

有关详细信息,请参阅perf文档。

社区

有一个mailing list 对于这个在google上的实现。

请加入,并随时发送问题到那里。

贡献

我是朱利安·伯曼。

jsonschemaGitHub上。

通过Github或其他方式联系,如果你有什么要贡献的, 非常欢迎!

你也可以在freenode(nick:tos9)上找到我 频道,包括#python

如果你非常感激,你也可以用啤酒钱来讨好我 通过谷歌支付与我的github配置文件的电子邮件。

对于那些感谢jsonschema及其持续支持的公司 而增长,jsonschema现在也可以通过TideLift支持。

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

推荐PyPI第三方库


热门话题
java集合属性值   java字符串==运算符是否比较引用?   java是否存在过太多的ListView或适配器?   json获取java中类路径中下载的文件   我可以用java代码解决数据库并发问题吗?   在多个线程中使用forEach()或使用forEach()和lambdas进行java集合迭代   java输出JFrame中的整个循环   java禁用高度详细的日志记录   java在没有特定属性的对象中访问模型的值   java Smack xmpp建立连接   处理过时域对象引起的并发问题的java策略(Grails/GORM/Hibernate)   java从ObservableList中提取元素   使用图像进行java相似图像搜索   java ListView和图像:我快疯了   在Java中,如何从毫秒时间戳中提取一天的周期?   java我需要这样的设计,但我面临两个问题   java如何获取JGoodies FormLayout中的单元格大小   Spring引导生成的java War文件未部署到Weblogic 12c