Я получаю 'jsonschema.exceptions.UndefinedTypeCheck: тип' string 'неизвестен этой проверке типа' ошибка - PullRequest
0 голосов
/ 23 сентября 2019

Мне нужно проверить схему JSON, которую я получаю из запроса API.Для этого я создаю некоторый тестовый сценарий.

    def get_request():
    r = requests.post(*some request*)
    return r

    """The schema which needs to be validated:"""

    tc = TypeChecker()
    my_json = get_request()[0]
    schema = {
        "type": "array",
        "items": {
            "id": {"type": "number"},
            'name': {"type": "string"},
            "launchAlias": {"type": "string"},
            "imsGameType": {"type": "string"},
            "liveGameType": {"type": "string"},
            "tableColor": {"type": "string"},
            "dedicated": {"type": "boolean"},
            "status": {"type": "string"},
            "language": {"type": "string"},
            "languageFlagImageUrl": {"type": "string"},
            "dynamicImageUrl": {"type": "string"},
            "asaAlternativeImage": {"type": "string"},
            "dealer": {"type": "array"},
            "dealerName": {"type": "string"},
            "dealerPictureUrl": {"type": "string"},
            "asaCompliant": {"type": "string"},
            "platforms": {"type": "array"},
            "playerCount": {"type": "array"},
        },
    }


    """Schema validation"""

    tc.is_type(instance=my_json["name"], type='string')

Я ожидаю, что получить вывод будет просто: «Процесс завершен с кодом завершения 0». Попробовал несколько вариантов для других экземпляров, таких как «type = string / str /число / целое число / массив и т. д. "Всегда получаю одну и ту же ошибку

Но я всегда получаю:

Traceback (последний вызов был последним): файл "C: \ Users \ vvel \ PycharmProjects \ без названия \ venv \ lib \ site-packages \ jsonschema_types.py ", строка 91, в is_type fn = self._type_checkers [тип] Файл" C: \ Users \ vvel \ PycharmProjects \ без названия \ venv \ lib \ site-packages \ pyrsistent_pmap.py ", строка 71,в getitem вернуть PMap._getitem (self._buckets, key) Файл "C: \ Users \ vvel \ PycharmProjects \ без названия \ venv \ lib \ site-packages \ pyrsistent_pmap.py", строка 68, в _getitemподнять KeyError (key) KeyError: 'string'

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): Файл "C: /Users/vvel/PycharmProjects/untitled/asd.py ", строка 58, в файле validate_object ()" C: /Users/vvel/PycharmProjects/untitled/asd.py ", строка 54, в validate_object tc.is_type (экземпляр)= my_json ["name"], type = 'string') Файл "C: \ Users \ vvel \ PycharmProjects \ без названия \ venv \ lib \ site-packages \ jsonschema_types.py ", строка 93, в is_type повысить UndefinedTypeCheck (тип) jsonschema.exceptions.UndefinedTypeCheck: тип 'string' неизвестен для этой проверки типов

...