【发布时间】:2018-07-09 06:04:31
【问题描述】:
我正在使用JsonSchema 2.6.0 来验证我的 python 程序的表单数据。
我正在尝试实现exclusiveMinimum,但是当我发布到表单时,它接受 0 作为有效值,但它不应该。
from jsonschema import Draft3Validator
orderValidationSchema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"total_amount": {
"$ref": "#/definitions/floatRef",
"required": "true",
"exclusiveMinimum": 0
},
"payable_amount": {
"$ref": "#/definitions/floatRef",
"required": "true",
"exclusiveMinimum": 0
},
},
"definitions": {
"floatRef": {
"type": "number",
},
}
}
在经历了几个 git 问题和其他链接后,我按照下面显示的方式尝试了它,但仍然没有用。
from jsonschema import Draft3Validator
orderValidationSchema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"total_amount": {
"$ref": "#/definitions/floatRef",
"required": "true",
"minimum": 0,
"exclusiveMinimum": "true"
},
"payable_amount": {
"$ref": "#/definitions/floatRef",
"required": "true",
"minimum": 0,
"exclusiveMinimum": "true"
},
},
"definitions": {
"floatRef": {
"type": "number",
},
}
}
如果我犯了任何错误,请告诉我。
我正在使用Draft3Validator,以防万一有任何与之相关的问题。
以下是传递给此架构的 json。
{
"total_amount" : 100000,
"payable_amount" : 10000
}
【问题讨论】:
-
您能否提供您尝试验证的 JSON 实例?
-
一个问题是您使用的是
Draft3Validator,但您的架构标识为草稿 4 JSON 架构。 -
我已经用我传递的 JSON 更新了问题。至于另一个问题,
Draft3validator在我创建的另一个模式中完美工作,我在其中引用了 Draft-4 JSON 模式。 -
太棒了!我有一个解决方案给你。立即发布。
标签: python json jsonschema