Ошибка проверки Jsonschema

Я использовал валидатор jsonschme для проверки моего вывода json на файлы Json.

from jsonschema import validate    #https://pypi.python.org/pypi/jsonschema

def assertDataMatchesSchema(self, data, schema_file_name): 
        with open(os.path.join("mha/resource_jsonschema", schema_file_name)) as schema_file:
            validate(data, json.load(schema_file))

Вот мои jsonschemas:

 { "code": {"type":["string","null"]},
       "codingMethod": {"type":["string","null"]}, 
       "priority":{"type":["string","null"]},
       "status":{"type":["string","null"]} ,
       "description" : {"type" : "string"} 


     }

Выход терминала:

SchemaError: {u'type': u'string'} is not of type u'string'

Failed validating u'type' in schema[u'properties'][u'description']:
    {u'type': u'string'}

On instance[u'description']:
    {u'type': u'string'}

Проблема: если я удалю поле description из файла выше или изменю его на какое-то другое имя, оно будет работать, но мне нужно поле описания (обязательное) там. Любое решение для решения этой проблемы ??

Та же проблема, если я использую поле "type".


person Anil Kumar Arya    schedule 11.09.2013    source источник
comment
Что если заменить "description" : {"type" : "string"} на "description" : {"type" : ["string"]}?   -  person alecxe    schedule 11.09.2013
comment
SchemaError: {u'type': [u'string']} не относится к типу u'string' Не удалось проверить u'type' в схеме[u'properties'][u'description']: {u'type': u'string'} В экземпляре [u'description']: {u'type': [u'string']}   -  person Anil Kumar Arya    schedule 11.09.2013


Ответы (1)


описание - это ключ, который использует json-схема. Итак, ваша схема должна понравиться: -

schema = {
    "type": "object",
    "properties": {
             "code": {"type":["string","null"]},
       "codingMethod": {"type":["string","null"]}, 
       "priority":{"type":["string","null"]},
       "status":{"type":["string","null"]} ,
       "description" : {"type" : "string"} 
    }
}

data = {"description" : "nowtry"}
validate(data, schema)

У меня работает..

Здесь вы можете увидеть, как должна выглядеть ваша схема, http://www.w3resource.com/JSON/JSON-Schema.php

person Anurag    schedule 11.09.2013
comment
Эта ссылка также может помочь вам в том, как написать jsonschema? :json-schema.org/example1.html - person Anurag; 11.09.2013