quart-schema响应验证报错:Cannot load dataclass导致500错误求助
问题原因与解决方法
错误的核心原因是:你返回的是普通字典{"msg": "info"},但@validate_response(Info, 200)装饰器要求返回值必须是Info类的实例。quart-schema在验证时会尝试将返回的响应数据加载为指定的Info类型,字典无法直接完成这个加载过程,因此抛出Cannot load <class 'schema.Info'>错误。
解决方法
- 直接返回
Info类的实例,替换原返回语句即可:
修改后的完整代码:return Info(msg="info"), 200from dataclasses import dataclass from quart import Quart from quart_schema import QuartSchema, validate_response app = Quart(__name__) QuartSchema(app) @dataclass class Info: msg: str @app.get("/info") @validate_response(Info, 200) async def info() -> tuple[Info, int]: return Info(msg="info"), 200
内容的提问来源于stack exchange,提问作者Spitzer
相关产品推荐
相关产品推荐

