JSON记录应该是无效的,但它显示的值为True
import json
import jsonschema
dat='{"TID":"9020","CUR":"USD","DAT1":"t","DAT2":11}'
print type(dat)
def validJson(rowData):
jsonRec=json.loads(rowData)
jsonSc=json.loads('''{ "title": "NCAP", "type": "object", "properties": { "TID" : { "type ": [ "string" ] },"CUR" : { "type ": [ "string" ] , "maxLength" : 3 },"DAT1" : { "type ": [ "number","null"] , "maximum" : 99999999999 },"DAT2" : { "type ": [ "number" ,"null"] , "maximum" : 112 } }, "required": [ "TID", "CUR", "DAT1", "DAT2" ] }''')
val = jsonschema.Draft3Validator(jsonSc).is_valid(jsonRec)
print "is records valid ::"+str( val)
va=jsonschema.validate(jsonRec, jsonSc)
print "records validated "+str(va)
return json.dumps(jsonRec)
print validJson(dat)
它应该是False的原因是DAT1数据类型是number,而它的值是“t”
或者,如果有人可以建议某种方法,让json记录根据其模式进行验证
您的
type
关键字后面有一个空格。Json模式不将其识别为关键字并忽略它。去掉多余的空间,它会像预期的那样工作。在相关问题 更多 >
编程相关推荐