运行环境:Django+Python3.10
原因:
这个错误信息表示尝试使用了 JSONDecoder 类的 __init__ 方法时提供了一个不被期望的关键字参数 encoding。在 Python 3.9 以前的版本中,json.loads 和 JSONDecoder 支持 encoding 参数,用于指定解码 JSON 字符串使用的编码。然而,从 Python 3.9 开始,这个参数被移除了,因为 JSON 标准明确规定编码必须是 UTF-8,使得这个参数变得不再必要。
例如代码:
import json
# 假设你在调用 JSONDecoder 时使用了 encoding 参数
decoder = json.JSONDecoder(encoding='utf-8')
import json
# 假设你在调用 json.loads 时使用了 encoding 参数
data = json.loads(some_json_string, encoding='utf-8')
运行会报错!
解决方式:
移除encoding 参数的使用

在Django+Python3.10环境下遇到JSONDecoder报错,原因是Python3.9及以上版本移除了'encoding'参数。错误出现在尝试解码JSON字符串时使用了该参数。解决方法是删除解码时的'encoding'参数,保持与JSON标准一致,使用UTF-8编码。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



