jsonschema到python类转换器
jschema2p的Python项目详细描述
jschema2py
jschema2py能够从jsonschema开始生成python类,并为类型提供自动支持 以及约束检查。
安装
该软件包可以通过pip安装:
$ pip install jschema2py
或者从GitHub下载。
示例
例如,给定以下模式:
{"title":"UserInfo","type":"object","properties":{"name":{"type":"string","pattern":"^[^a-z0-9]"},"userName":{"type":"string"},"age":{"type":"integer","minimum":0,"maximum":100}}}
jschema2py可以很容易地以这种方式将其转换为python类(这里假设模式存储在变量中 调用的架构):
fromjschema2pyimportbuild_classUserInfo=build_class(schema)user=UserInfo()user.name="Jacopo"user.userName="JDL"user.age=24print(user)
将对对象操作执行验证:
user.name="jacopo"# raise ConstraintError (pattern: ^[^a-z0-9])user.age="24"# raise TypeError
对象可以序列化为json文档:
jsdoc=str(user)
访问生成的类
如果架构的一个属性引用另一个对象,则可以访问表示引用的 使用方法获取对象类:
{"title":"Nested","type":"object","properties":{"inner":{"title":"Inner","type":"object","properties":{"string":{"type":"string","default":"I'm inner!"}}}}}
fromjschema2pyimportbuild_classNested=build_class(schema)nested=Nested()nested.inner=nested.get_class("inner")()# Gets the class associated with the property "inner" print(nested.inner.string)