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)

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

推荐PyPI第三方库


热门话题
java我试图使用@OneToOne作为双向映射来映射实体,但却遇到了奇怪的异常   性能Java异步如何工作?异步方法似乎不是异步运行的   java这个代码可以更短吗   线程“main”Java中的csv Java ArrayList异常。lang.NegativeArraySizeException:28   java确定LayoutManager预布局中的显示视图   java如何在FirestorePagingAdapter中通过方法onLoadingStateChanged隐藏/显示进度条?   在Java中,如何打印一个类似于中间有“过道”的座位表的2d数组?   http Java实现字节范围服务,而不使用仅使用Java api的servlet   java无法使用命名根元素生成json   java如何在注销侦听器中获取http会话id?   数组内部输入(java)?   java如何为特殊情况提供更简单的构造函数   java在swing应用程序中显示JavaFX后台   java如何启用系统。出来在eclipse中运行Junit测试时使用println()?   如何在Java中实现Oracle用户定义的聚合函数