基于json模式的python json数据生成器的实现

jsonfromschema的Python项目详细描述


简而言之

jsonfromschema用于从json模式(.json,请参阅https://json-schema.org)生成json数据(文件.json) 项目是为python目的而用python编写的,但它也是独立的工具。

SPDX许可证标识符:0bsd

项目名称:jsonfromschema 许可证:0bsd/免费公共许可证1.0.0 有关许可证的详细信息:https://opensource.org/licenses/0BSD

非安装

git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git

您可以从源代码运行它,而无需任何依赖性*(python和它附带的一些模块)

python ./jsonfromschema

请参见:

python ./jsonfromschema --help

有关更多详细信息,请参见cli部分。

安装

pip install jsonfromschema

pip install -e git@github.com:NIC-MichalLabedzki/jsonfromschema.git

pip install -e https://github.com/NIC-MichalLabedzki/jsonfromschema.git

git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git
cd jsonfromschema
python setup.py # or pip install -e .

接口

有两种接口:CLIPython module

cli

cli是命令行界面。所以您有一个名为:jsonfromschema的工具

$ jsonfromschema --help
usage: jsonfromschema [-h][-v][-w [VALIDATE]][--no-default][--no-examples][--maximum][--subschema SUBSCHEMA][--from-python-package FROM_PYTHON_PACKAGE]
         schema output

Generate JSON data file (*.json) from JSON Schema

positional arguments:
schema                path to JSON Schema file or python packages resource
                        [--from-python-package]
output                path to JSON data output file

optional arguments:
-h, --help            show this help message and exit
-v, --verbose         verbose mode
-w [VALIDATE], --validate [VALIDATE]
                        use jsonschema to validate output and check if schema
                        is valid [3,4,6,7 (default)]
--no-default          do not use 'default' fields in jsonschema
--no-examples         do not use 'default' fields in jsonschema
--maximum             generate as complex json as possible (by
                        implementation);for example ignore "required" and
                        favor "object" over less complicated fields
--subschema SUBSCHEMA
                        extract subschema only by this json fragment pointer
--from-python-package FROM_PYTHON_PACKAGE
                        'schema' is path to python package resource, this
                        option needs package name as argument

一些示例:

$ jsonfromschema input_schema.json output_json_data.json

详细:

$ jsonfromschema input_schema.json output_json_data.json -v

验证输出: 它使用“json schema”模块(pip install jsonschema)验证输出json在给定模式下是否有效。

$ jsonfromschema input_schema.json output_json_data.json -w

生成子模式: 使用json指针(模式端)只生成模式的一部分:

$ jsonfromschema tests/test_schema_main.json.json output.json -w --subschema=/properties/string_default
$ cat output.json
"foo"

使用一些python包中的json模式资源:

$ jsonfromschema ../tests/test_schema_main.json output.json -vw --subschema=/properties/string_default --from-python-package jsonfromschema
$ cat output.json
"foo"

python模块

API is not stable right now.

importjsonfromschema.lib
generate_dict_from_text(root_name,schema_text,optional_args=None)generate_dict_from_file(schema_file,optional_args=None)generate_dict_from_package(package,path,optional_args=None)
可选参数:
默认值为:
{'verbose':False,'no-default':False,'no-examples':False,'maximum':False,'pkg_resource_root':None,'subschema':None,}
其中:
pkg_resource_root是包名,例如“jsonschema”

待办事项

  1. jsonschema draft-7支持(正在进行中)
  2. 检查Draft-4支架
  3. 贡献部分

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

推荐PyPI第三方库


热门话题
java无法使用JAXB配置Moxy   java如何让我的简单Swing telnet客户端正确显示字符?   java中从可运行线程调用主线程的多线程处理   java数据源。EBJ3会话bean中的getConnection()   使用java和正则表达式从xml文件提取值时出现问题   java定制Jersy胡须Mvc   在Java中,“限制并发”是什么意思?   java有没有更干净的方法可以在这里使用Optional,而不在三个地方返回“NA”?   java Tomcat启动,然后崩溃,除非我打电话   java理解客户机和服务器   java时间戳将在视图对象>实体转换期间丢失   如何在java中返回布尔值(基元)?   java使用spring mvc设置日志记录,希望仅对我的代码进行跟踪/调试   用Jackson解析嵌套对象