我正在Python中开发一个小的RESTFUL应用程序,并使用JSON作为接口。该应用程序接受JSON数据,并且需要针对模式进行验证。根据请求,模式可能非常严格或灵活。此外,该应用程序可能需要在以后的改进中验证用户对象。
我在堆栈溢出以及其他网站中发现了一些建议。这些包括
- Cerberus
- jsonschema
- 妖
,但找不到适当的比较。
在简单,灵活性和扩展性方面,您认为我应该选择哪一个?
Cerberus似乎非常灵活,并且可以通过其文档和示例来扩展能力。但是我不知道其他库。
编辑1 :现在,应用程序的需求非常简单,并且具有添加自定义类型和自定义验证规则的范围的基本架构验证就足够了。因此,如果所有这些库提供了基本要求,我将选择最简单的使用。我也对其他建议开放。
希望找到一些帮助。
我会服用cerberus,然后仅用于其精彩文档。它允许根据某些条件(http://docs.python-cerberus.org/en/stable/validation-rules.html#dependencies)设置依赖项,并且对于您所引用的基本架构验证需求时,肯定很简单作为jsonschema,妖folluble等。
嵌套字段也得到了支持(在我熟悉的所有库中),他们的自定义文档很棒:http://docs.python-cerberus.org/en/stable/custable/customize.html
话虽如此,我不是在使用所有三个提议的软件包上基于这个答案,而是在广泛使用Jsonschema上,并在其他两个方面阅读了足够的文档和建议。