You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动Python Quart应用集成Quart-Motor时遇JSONEncoder属性错误

解决Quart-Motor集成时的AttributeError: module 'quart.json' has no attribute 'JSONEncoder'

问题原因

Quart在0.19及以上版本重构了JSON处理逻辑,移除了quart.json.JSONEncoder这个导出项,但当前版本的Quart-Motor仍在依赖这个旧API,导致启动时触发属性找不到的错误。

解决方法

方案一:降级Quart到兼容版本

安装Quart 0.18.3(该版本保留了quart.json.JSONEncoder,与Quart-Motor兼容):

  • 使用Poetry的话,在pyproject.toml中修改依赖:
quart = "==0.18.3"

然后执行:

poetry update
  • 使用pip直接安装:
pip install quart==0.18.3 --force-reinstall

方案二:修改Quart-Motor源码适配新版Quart

如果不想降级Quart,可以手动修改Quart-Motor的代码:

  1. 找到Quart-Motor的安装目录(通过pip show quart-motor查看Location字段)
  2. 打开目录下的motor.py文件,找到所有引用from quart.json import JSONEncoder或quart.json.JSONEncoder的位置
  3. 将其替换为标准库的JSONEncoder:
from json import JSONEncoder

或者适配Quart新版的JSONProvider:

from quart.json.provider import DefaultJSONProvider
JSONEncoder = DefaultJSONProvider.encoder_class
  1. 保存文件后重新启动应用即可。

内容的提问来源于stack exchange,提问作者sebajou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:51:28