0
오류를 일으킨 속성을 확인하려고합니다. 그것은 오류의 각 유형에 대한 속성을 얻는 방법이 다른 것 같습니다.각 jsonschema 오류에 대한 속성 가져 오기
from jsonschema import Draft4Validator
request_json = {
'num_pages': 'invalid',
'duration': 'invalid',
'dne': 'invalid'
}
schema = {
"patch": {
"type": "object",
"properties": {
"name": {"type": "string"},
"location": {},
"description": {},
"objectives": {},
"num_pages": {"type": "integer"},
"duration": {"type": "integer"}
},
"required": ["name"],
"additionalProperties": False
}
}
v = Draft4Validator(schema['patch'])
errors = []
for error in v.iter_errors(request_json):
print error.__dict__
이 예에서는이 필드와 오류 출력을 구성하려고합니다.
{
num_pages: 'invalid is not an integer',
duration: 'invalid is not an integer',
'dne': 'unexpected additional property',
'name': 'property is required'
}
현재 내가 가진 다음 error.instance.keys() [0] 올바른 보장되지 않는 여러 오류가있는 경우
if error.relative_schema_path[0] == 'required':
errors.append({error.message.split(' ')[0]: 'Required property'})
elif error.relative_path:
# field: error_message
errors.append({error.relative_path[0]: error.message})
# Additional Field was found
else:
errors.append({error.instance.keys()[0]: error.message})
를 다음과 같습니다.