基于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有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest