python执行json.loads(...)时遇到的错误

本文解决了一个关于使用Python从Redis中提取并解析JSON数据的问题。由于Redis存储的数据为二进制格式,在转换为JSON前需要先解码为UTF-8字符串。文章详细介绍了如何通过替换字符串中的单引号为双引号来解决因JSON键值缺少双引号而导致的解析失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近在编写web程序需要用到redis来存储json格式,因为redis的存储室二进制,所以在提取数据的时候需要用到将二进制解码为utf-8,然后再转化为json。

    前面解码没问题用decode(‘utf-8’)就可以了,原来的代码是这样子的:

<span style="font-size:18px;">   messages.append(json.loads(mess.decode('utf-8')))</span>
    好像没啥问题,但结果却报错了!!!

    ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

    大概提示是要用双引号,网上搜索了一个也好像是说由于json的key没有双引号,导致json解析错误的。

    改正代码如下:

<span style="font-size:18px;">   messages.append(json.loads(mess.decode('utf-8').replace("'", "\"")))</span>
    利用replace将单引号改成双引号,就可以了。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值