我收到 'jsonschema.exceptions.Undefined Type Check: Type 'string' is unknown to this type checker' 错误

Posted

技术标签:

【中文标题】我收到 \'jsonschema.exceptions.Undefined Type Check: Type \'string\' is unknown to this type checker\' 错误【英文标题】:I recieve 'jsonschema.exceptions.UndefinedTypeCheck: Type 'string' is unknown to this type checker' error我收到 'jsonschema.exceptions.Undefined Type Check: Type 'string' is unknown to this type checker' 错误 【发布时间】:2020-01-23 07:11:48 【问题描述】:

我需要验证从 API 请求收到的 JSON 架构。为此,我正在创建一些测试脚本。

    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/number/integer/array 等”。总是报同样的错误

但我总是得到:

Traceback(最近一次调用最后一次): 文件“C:\Users\vvel\PycharmProjects\untitled\venv\lib\site-packages\jsonschema_types.py”,第 91 行,在 is_type fn = self._type_checkers[类型] getitem 中的文件“C:\Users\vvel\PycharmProjects\untitled\venv\lib\site-packages\pyrsistent_pmap.py”,第 71 行 返回 PMap._getitem(self._buckets, key) _getitem 中的文件“C:\Users\vvel\PycharmProjects\untitled\venv\lib\site-packages\pyrsistent_pmap.py”,第 68 行 引发 KeyError(键) KeyError: '字符串'

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“C:/Users/vvel/PycharmProjects/untitled/asd.py”,第 58 行,在 验证对象() 文件“C:/Users/vvel/PycharmProjects/untitled/asd.py”,第 54 行,在 validate_object tc.is_type(instance=my_json["name"], type='string') 文件“C:\Users\vvel\PycharmProjects\untitled\venv\lib\site-packages\jsonschema_types.py”,第 93 行,在 is_type 引发 UndefinedTypeCheck(type) jsonschema.exceptions.UndefinedTypeCheck:此类型检查器未知类型“字符串”

【问题讨论】:

【参考方案1】:

您似乎不太可能真的想直接使用TypeChecker

你有一个实例和一个架构。

您可能只是想使用jsonschema.validate(instance, schema)validator = jsonschema.Draft7Validator(schema); validator.validate(instance)

【讨论】:

以上是关于我收到 'jsonschema.exceptions.Undefined Type Check: Type 'string' is unknown to this type checker' 错误的主要内容,如果未能解决你的问题,请参考以下文章

我收到“错误:React.Children.only 预计会收到一个 React 元素子项。”带有 TouchableWithoutFeedback

当我没有收到手动运行代码时,在 Python for 循环中收到 KeyError

尝试控制台时收到 401~UNAUTHORIZED。记录我从 socket.io 收到的消息

无效的字典 0 )。为啥我收到此错误?

为啥我收到远程通知时没有发送本地通知?

我收到以下异常[重复]