基于本地文件系统的json目录,可用于包'jsonschema`

jsoncatalogue的Python项目详细描述


jsoncatalogue允许从类似url的目录结构中读取一组JSON文件

文件以简单的url:jsoncontent dictionary加载和提供。

这样的字典可以用作json模式的目录,用于json模式验证。

安装

$ pip install jsoncatalogue

包含json文件的目录结构

如果您想获得用于Swagger v1.2验证的目录:

./catalogue/http/wordnik.github.io/schemas/v1.2/apiDeclaration.json
./catalogue/http/wordnik.github.io/schemas/v1.2/infoObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/authorizationObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/modelsObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/operationObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/parameterObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/dataTypeBase.json
./catalogue/http/wordnik.github.io/schemas/v1.2/oauth2GrantType.json
./catalogue/http/wordnik.github.io/schemas/v1.2/resourceObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/dataType.json
./catalogue/http/wordnik.github.io/schemas/v1.2/resourceListing.json

其中

  • catalogue-是目录“home”目录(可以更深入)
  • http-是协议名可以是任何其他的,比如ftp
  • wordnik.github.io-域名
  • schemas/v1.2-json文件的本地路径
  • {实际的JSON文件——必须是有效的JSON文件(没有其他要求存在)

如您所见,没有复杂的规则可遵循,只要有uri指向有效的json文件(甚至不需要扩展名“.json”)

从目录

加载json目录
>>> from jsoncatalogue import Catalogue
>>> catalogue = Catalogue()
>>> catalogue.add_directory("catalog")
>>> catalogue.add_directory("../other/catalog")
>>> catalogue.store
{"http://exam.ple/schema/one.json": {...},
 "http://exam.ple/schema/two.json": {...},
 "http://wordnik.github.io/schema/v1.2/apiAuthentication.json": {...}
 "http://no.extensi.on/schema/pets": {...}
 }

就这些。现在有了一个包含uri和相关json内容的字典。json内容已经加载并表示为字典。

使用json模式验证程序的目录

这个catalogue.store可以分配给jsonschema验证器:

>>> from jsonschema import Draft4Validator
>>> validator = Draft4Validator()
>>> validator.resolver.store = catalogue.store

从现在起,验证程序将从目录中了解模式

注意

在项目SUPERHUBCDV工作期间完成的初始开发。该软件包在麻省理工学院许可下发布,许可证为CDV

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

推荐PyPI第三方库


热门话题
javascript如何找到socket。同一局域网上的IO服务器?   将Java代码格式化为Word/RTF格式   java学习对象以及如何将分配的变量封装到私有变量   java Websocket客户端不在Tomcat中工作   java如何在点击按钮时打开本机表情键盘?   java使用哪个Maven GlassFish插件?   Eclipse Java构建路径不允许添加外部JAR   继承Java6集合。勾选适当的用法   JavaApacheDateUtils:使用多个模式解析日期   java hibernate如何生成查询?   具有id或链接的java Dropbox下载文件或文件夹   java模态对话框未在PrimeFaces 5上显示   java将类对象转换为人类可读的字符串   更新数据库中字段的java通用方法   java无法通过Apache Tomcat访问网络文件夹