首页 前端知识 python项目报错JSONDecoder.__init__() got an unexpected keyword argument ‘encoding‘问题解决

python项目报错JSONDecoder.__init__() got an unexpected keyword argument ‘encoding‘问题解决

2024-06-10 23:06:50 前端知识 前端哥 860 735 我要收藏

运行环境:Django+Python3.10

原因:

这个错误信息表示尝试使用了 JSONDecoder 类的 __init__ 方法时提供了一个不被期望的关键字参数 encoding。在 Python 3.9 以前的版本中,json.loadsJSONDecoder 支持 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 参数的使用

更改为:

import json

# 使用 JSONDecoder 时不带 encoding 参数
decoder = json.JSONDecoder()

# 或在调用 json.loads 时不带 encoding 参数
data = json.loads(some_json_string)

测试运行正常!

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11851.html
评论
发布的文章

FastJson 2『使用心得』

2024-06-18 23:06:34

fastjson(版本<=1.2.24)复现

2024-06-18 23:06:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!