我使用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
}
你的模式有一些问题。 首先,
exclusiveMinimum
必须是布尔值,而不是字符串。 第二,required
需要是对象级的,而不是属性级的,因为模式被指定为draft-4模式。如果可能,您应该使用Draft4Validator。你知道吗第三,
$ref
。这个关键字,一直到draft-7,替换了整个对象的内容,这意味着该对象中的其他关键字将被忽略。 解决方案是将要应用于实例属性的两个模式包装在allOf
中。我用下面的模式演示了这一点,它似乎满足了您的要求。你知道吗(“MTZ”只是零以上的简写。你可以随便叫它。)
相关问题 更多 >
编程相关推荐