python - 将 JSON 模式转换为 python 类

标签 python json jsonschema

是否有python库可以将JSON模式转换为python类定义,类似于jsonschema2pojo -- https://github.com/joelittlejohn/jsonschema2pojo -- 对于 Java?

最佳答案

到目前为止,我能找到的最接近的东西是 warlock ,宣传此工作流程:

构建您的架构

>>> schema = {
    'name': 'Country',
    'properties': {
        'name': {'type': 'string'},
        'abbreviation': {'type': 'string'},
    },
    'additionalProperties': False,
}

创建模型

>>> import warlock
>>> Country = warlock.model_factory(schema)

使用您的模型创建对象

>>> sweden = Country(name='Sweden', abbreviation='SE')

然而,这并不是那么容易。术士生产的元素缺乏内省(introspection)的好东西。如果它在初始化时支持嵌套字典,我无法弄清楚如何让它们工作。

为了提供一点背景知识,我正在研究的问题是如何获取 Chrome's JSONSchema API并生成请求生成器和响应处理程序树。 Warlock 似乎并不太离谱,唯一的缺点是 Python 中的元类不能真正变成“代码”。

寻找其他有用的模块:

如果您最终找到了一个很好的一站式解决方案,请跟进您的问题 - 我很想找到一个。我翻遍了 github、pypi、googlecode、sourceforge 等。但找不到任何真正性感的东西。

由于缺乏任何预先制定的解决方案,我可能会自己与术士一起拼凑一些东西。所以如果我打败你,我会更新我的答案。 :p

关于python - 将 JSON 模式转换为 python 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465588/

相关文章:

python - 将 Pandas DataFrame 中的所有行乘以字典

javascript - JSON日期,显示服务器时区的原始日期

python - 什么是非阻塞 "Database"的好选择(使用 TCP 套接字服务器)

python - numpy:int 是一个 basestring?

python - 如何在 Python 中打印和计算 MongoDB 中 Json 内的值

json - 使用 Jackson 将多个 JsonNode 合并到一个数组中

java - Jackson ObjectMapper 将 "long"java 类型视为 "number"而不是 "integer"

json - 如何在json模式中表示求和/联合类型

jsonschema - 如何在 json 模式中使用 `If` `then` `else` 条件?

Python:将 numpy 符号数组转换为 int 并返回