【python】json.loads()读取字符串报错:json.decoder.JSONDecodeError解决办法

import json

str = """
[{
    'name':'zhang san',
    'gender':'male',
    'birthday':'1992-01-05'
},{
    'name':'li si',
    'gender':'female',
    'birthday':'1991-12-13'
}]
"""
print(type(str))
data = json.loads(str)
print(data)
print(type(data))

运行报错:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 8)


原因分析:

str字符串里面的标识字符用了单引号括起来,将其换成双引号后再次运行

import json

str = '''
[{
    "name":"zhang san",
    "gender":"male",
    "birthday":"1992-01-05"
},{
    "name":"li si",
    "gender":"female",
    "birthday":"1991-12-13"
}]
'''
print(type(str))
data = json.loads(str)
print(data)
print(type(data))

输出结果正常:
<class 'str'>
[{'name': 'zhang san', 'gender': 'male', 'birthday': '1992-01-05'}, {'name': 'li si', 'gender': 'female', 'birthday': '1991-12-13'}]
<class 'list'>

注意:将标识字符的单引号替换为双引号时,需要先将外面的三双引号替换为三单引号

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值