python - 将 JSON 模式转换为 Python 类

标签 python json jsonschema

是否有用于将 JSON 模式转换为 Python 类定义的 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')

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

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

要查找的其他有用模块:

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

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

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

相关文章:

python - pyarrow 可以将多个 Parquet 文件写入 fastparquet 的 file_scheme ='hive' 选项之类的文件夹吗?

python - 如何在交互式 PySpark session 中更改 SparkContext 属性

javascript - NVD3 - 将 JSON url 数据与 LinePlusBarChart 结合使用(映射值)

javascript - 如何使用 JSON Schema 验证表单?

json - 如何管理多个 JSON 模式文件?

python - 在 Pandas 中使用多重索引过滤数据帧

python - 何时使用 sys.path.append 以及何时修改 %PYTHONPATH% 就足够了

javascript - 如何从 JavaScript 对象创建树状结构

javascript - AngularJS POST 更新 Rails 中的数据库

json - 在 json 模式中,描述二进制模式的默认值、示例或枚举值的正确方法是什么?