是否有用于将JSON模式转换为python类定义的python库,类似于用于Java的jsonschema2pojo - https://github.com/joelittlejohn/jsonschema2pojo?将JSON模式转换为python类
回答
到目前为止,我已经能够找到最接近的是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')
然而,这不是那么简单。术士所生产的物品在缺乏内涵的东西方面缺乏多少。如果它在初始化时支持嵌套字典,我无法弄清楚如何使它们工作。
为了提供一些背景知识,我正在研究的问题是如何获取Chrome's JSONSchema API并生成请求生成器和响应处理程序的树。术士看起来并不太离谱,唯一的缺点是Python中的元类无法真正转化为“代码”。
其他有用的模块来寻找:
- jsonschema - (其中术士是建立在顶部)
- valideer - 类似jsonschema但更糟糕的名字。
- bunch - 一个有趣的结构建设者那中途a dotdict和construct
如果你最终找到此请按照你的问题一个很好的一站式解决方案之间 - 我很想找到一个。我倒过github,pypi,googlecode,sourceforge等等。而且找不到任何真正性感的东西。由于缺乏任何预制解决方案,我可能会与术士自己一起拼凑一些东西。所以如果我打败你,我会更新我的答案。 :P
同上跟进。我经历了相同的来源,找不到任何可接受的解决方案。我甚至派了术士,开始在他们的类定义中实现递归(看起来应该相当容易),但放弃了。 –
python-jsonschema-objects是术士替代,建立在jsonschema的顶部
蟒-jsonschema对象提供了一个自动基于类的结合JSON模式用于在Python中使用。
用法:
样品JSON模式
schema = '''{
"title": "Example Schema",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
},
"dogs": {
"type": "array",
"items": {"type": "string"},
"maxItems": 4
},
"gender": {
"type": "string",
"enum": ["male", "female"]
},
"deceased": {
"enum": ["yes", "no", 1, 0, "true", "false"]
}
},
"required": ["firstName", "lastName"]
} '''
转换架构对象类
import python_jsonschema_objects as pjs
builder = pjs.ObjectBuilder(schema)
ns = builder.build_classes()
Person = ns.ExampleSchema
james = Person(firstName="James", lastName="Bond")
james.lastName
u'Bond' james
example_schema lastName=Bond age=None firstName=James
验证:
james.age = -2 python_jsonschema_objects.validators.ValidationError: -2 was less or equal to than 0
但问题是,它仍然使用draft4validation,而jsonschema已经通过draft4validation,我提交了一个问题回购这件事。 除非您使用旧版本的jsonschema,否则上述软件包将如图所示工作。
- 1. 将JSON转换为JSON模式的库
- 2. 将Python字典转换为JSON格式
- 3. 将JSON转换为.ics(Python)
- 4. JSON模式转换为JSON数据
- 5. 将json格式转换为其他数组类型json格式
- 6. python中的JSON模式转换
- 7. 将类型转换为python
- 8. 将类转换为模板
- 9. 将preg_match模式转换为javascript模式
- 10. 将Informix模式转换为PostgreSQL模式
- 11. 如何将示例JSON转换为Java中的JSON模式
- 12. 使用python将csv转换为json
- 13. Python - 将csv文件转换为JSON
- 14. 如何将json转换为Python列表?
- 15. 将json转换为python字典
- 16. Python - 将JSON对象转换为字典
- 17. 无法将JSON转换为Python列表
- 18. 将JSON转换为Python字典
- 19. Python将json文件转换为html
- 20. 使用Python将JSON转换为CSV 3
- 21. python脚本将.dat转换为json
- 22. 在Python中将字典转换为JSON
- 23. 使用Python将JSON转换为CSV
- 24. Python将json/html转换为pdf
- 25. 使用python将json转换为csv
- 26. Python - 将稀疏矩阵转换为JSON
- 27. 将大型JSON转换为CSV - Python
- 28. 将Json转换为Python中的字典
- 29. 将JSON数组转换为Python列表
- 30. XSD模式将XML数据转换为JSON格式的问题
您可否详细说明为什么[json](http://docs.python.org/library/json.html)标准库模块的功能不足以满足您的需求,并且您需要生成的类定义? –
你的评论的答案很简单 - 与原始字典一起工作是二类对象管理,大多数人不喜欢JSON提供的面部霰弹枪爆炸。 – synthesizerpatel