基于jsonschema的json验证程序包,它为最终用户返回更好的验证错误

json_payload_validator的Python项目详细描述


CircleCIPyPI pyversionsPyPI version shields.ioPyPI license

格式化来自jsonschema的验证错误消息的小python包。 如果您希望独立的json验证器与任何框架分离,那么应该使用这个包。

原因

jsonschema确实很酷,但它的验证错误消息很糟糕,因为它们是为开发人员而不是最终用户准备的。 因此,如果您有一个使用jsonschema验证json有效负载并希望向 您可以使用此软件包的最终用户:)

工作原理

3个简单的规则:

  • 如果在有效负载中不发送必需的属性,则会收到消息'foo' is a required property
  • 如果验证失败,则将返回验证规则Validation of property 'foo' failed: {'minLength': 2, 'type': 'string', 'maxLength': 50}
  • 如果在验证规则中添加message属性,则将返回其值而不是规则Validation of property 'foo' failed: Custom error message

用法

pip install json_payload_validator

成功的验证示例

fromjson_payload_validatorimportvalidateschema={'type':'object','properties':{'name':{'type':'string','minLength':2,'maxLength':50},},'required':['name']}payload={'name':'John Maus'}error=validate(payload,schema)print(error)# None

必需的属性示例

fromjson_payload_validatorimportvalidateschema={'type':'object','properties':{'name':{'type':'string'},},'required':['name']}payload={}error=validate(payload,schema)print(error)# 'name' is a required property

验证规则失败示例

fromjson_payload_validatorimportvalidateschema={'type':'object','properties':{'name':{'type':'string',{'minLength':2,'type':'string','maxLength':50}},},'required':['name']}payload={'name':555}error=validate(payload,schema)print(error)# Validation of property 'name' failed: {'minLength': 2, 'type': 'string', 'maxLength': 50}

自定义错误消息示例

fromjson_payload_validatorimportvalidateschema={'type':'object','properties':{'name':{'type':'string','message':'Name must be a string'},},'required':['name']}payload={'name':555}error=validate(payload,schema)print(error)# Validation of property 'name' failed: Name must be a string

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在依赖项上没有这样的方法异常   java如何将@Value注入setter?   验证输入java的最佳实践   java在使用kotlin的安卓项目中没有此类字段错误   我们可以强制java接口实现超时吗?   java将BasicAuth()与FormLogin()组合用于不同的路径   java无法在更新SDK后更新应用程序(未安装应用程序)   macos Java 8、Swing和OSX:对话框使UI对鼠标无响应   java自定义单元格格式以US格式显示,尽管使用了带UK语言环境的DataFormatter   java按升序排列列表字符串数据   java Hibernate OGM[PersistenceUnit:person]无法构建Hibernate SessionFactory   生命周期配置未涵盖java插件执行:com。乱穿马路。专家插件。安卓generation2:安卓mavenplugin:3.5.0:generatesources   java RecyclerView显示为空   当服务器不返回任何输入时,java InputStream read()会阻塞