TypeError: JSONDecoder.__init__() got an unexpected keyword argument ‘encoding‘

在爬虫学习的过程中,在requests的使用中,要对请求到的源码进行解码,在这里我使用了json序列来进行操作:

import json
obj=json.loads(content,encoding='utf-8')
print(obj)

 但在运行该代码之后则报出以下错误。

Traceback (most recent call last):
  File "C:\Users\15907834654\Desktop\python基础\requests的使用.py", line 67, in <module>
    obj=json.loads(content,encoding='utf-8')
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\my apps\python\Lib\json\__init__.py", line 359, in loads
    return cls(**kw).decode(s)
           ^^^^^^^^^
TypeError: JSONDecoder.__init__() got an unexpected keyword argument 'encoding'

这里报错的主要原因是,在旧版本的json中,可以传递encoding这个参数,我使用的是新版的,使用以下命令可在终端中可查看json的版本。

python -c "import json; print(json.__version__)"

我的版本是2.0.9,在这里,json.loads中已经没有了encoding这个参数,他会自行匹配,因此我们只需将encoding=‘utf-8’给去掉即可,或者改为content.encode('utf-8)。

import json

obj=json.loads(content)

#obj=json.loads(content.encode('utf-8'))

print(obj)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值