【发布时间】:2017-06-16 22:27:59
【问题描述】:
我正在使用 python 2.7 jsonschema validate 方法来验证针对 jsonSchema 的响应 json。
我的 jsonSchema 是一个字典如下:
schema = {
"type" : "object",
"properties" : {
"Country": {"type": "object",
"properties":{
"State" : { "type" : "object",
"properties": {
"city": {"type": "object",
"properties":{
"lat":{"type": "string"},
"long": {"type": "string"}
}
},
"StateCode": {"type": "string"},
"StateFlagColor111": {"type": "string"},
"StateCapital": {"type": "string"}
}
}
}
}
}
}
我试图针对此架构验证的响应 json 是
{
"Country": {
"State": {
"City": {
"lat": "PP_4001",
"long": "Invalid GlobalParameters"
},
"StateCode": "2017-06-16 18:15:14.442000",
"StateFlagColor": "400",
"StateCapital": "ERROR"
}
}
}
根据 json 模式验证 json 数据的 Python 代码 sn-p 是
import jsonschema
from jsonschema import validate
try:
validate(responseDataJson, schema)
print 'good json'
except jsonschema.exceptions.ValidationError as ve:
print 'bad json' + str(ve)
如果您在架构中看到,元素的名称是 StateFlagColor111,而 json 数据中的元素是 stageFlagColor。我不确定它如何不会为这种验证抛出异常。它总是通过。
然后,出于好奇,我创建了一个像这样的非常基本的 jsonSchema,试图针对这个新模式验证与上面相同的 josn 数据。
schema1 = {
"type": "object",
"properties":{
"x1":{"type":"string"}
}
}
jsondata 也针对这个简单的模式进行了验证。
我不确定我在这里缺少什么。我应该如何完成这项工作?
【问题讨论】:
标签: python