我收到 '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