以下数据JSON模式(使用具有相同数据的JSON模式生成器生成)应该正确验证.但是我在这里收到了一个valdation错误.
验证基于验证模块.
import json
import validictory
import jsonschema
data = [{u'text':
u'<h1>The quick brown fox</h1>',
u'title': u'hello world',
u'location': u'Berlin',
u'created': u'2013-03-12T12:13:14'}]
schema = {
"$schema": "http://json-schema.org/draft-03/schema",
"id": "http://jsonschema.net",
"required": False,
"type": "object" ,
"properties": {
"0" : {
"id": "http://jsonschema.net/0",
"required": False,
"type": "object" ,
"properties": {
"created" : {
"id": "http://jsonschema.net/0/created",
"required": False,
"type": "string"
},
"location" : {
"id": "http://jsonschema.net/0/location",
"required": False,
"type": "string"
},
"text" : {
"id": "http://jsonschema.net/0/text",
"required": False,
"type": "string"
},
"title" : {
"id": "http://jsonschema.net/0/title",
"required": False,
"type": "string"
}
}
}
}
}
print validictory.validate(data,schema)
validictory.validator.FieldValidationError: Value [{u'text': u'<h1>The quick brown fox</h1>', u'created': u'2013-03-12T12:13:14', u'location': u'Berlin', u'title': u'hello world'}] for field '_data' is not of type object
解决方法:
您的验证错误告诉您问题是什么……
它说价值[{u’text’:你’< h1>快速的棕色狐狸< / h1>‘,u’created’:u’2013-03-12T12:13:14′,你的位置’:你’Berlin’,u’title’:u’hello world’}]字段’_data’不是类型对象,
它不是,它是一个列表.您需要验证其内容,即数据[0],而不是整个列表.
此外,看起来您在jsonschema.net修复了它们如何使用id之前生成了这个模式,这在规范下是不正确的,因此您可能想要删除这些属性.