基于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 .
接口
有两种接口:CLI和Python 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”
待办事项
- jsonschema draft-7支持(正在进行中)
- 检查Draft-4支架
- 贡献部分