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第三方库


热门话题
JasperReports中的java对齐项目符号   Jboss中的java类加载问题   Spring引导的java示例,RabbitMQ侦听器用nack响应   java设置http请求的类型   Java数组:使用私有字段的对象访问   java将变量传递到另一个视图:最佳实践   Java图形禁用xor模式   java如何使用安卓设备中存储的mupdf阅读器读取SD卡中存储的pdf文件   java My webapplication在IDE中测试时工作正常,但在Web服务器(tomcat)上不工作会话无效   java如何设置铃声播放的持续时间   寻求用java编写正则表达式的帮助   帆布Java中从右向左的drawText   java可以停止使用httpConnection连接到URL的线程。连接()?   java InputStream在验证javax后为空。xml。验证。验证器;   安卓在一个java类中有多个seekbar,需要为每个seekbar实现每个setOnSeekBarChangeListener吗?   java ConcurrenthashMap与线程安全   Tomcat中java奇怪的JSONString失真   C++ java JNI跨平台构建   java是由:org引起的。usb4java。LoaderException:在classpath/org/usb4java/windowsx86_64/libusb1中找不到本机库。0.dll