Python json.decoder.JSONDecodeError: Expecting value 报错原因与解决方案

七月
七月
发布时间:2026-10-13 | 2人浏览过
原创

本文分析Python中使用json库解析网络数据时常见的JSONDecodeError报错。主要原因为JSON字符串中键名和字符串值必须使用双引号,且数值类型需符合规范。通过修正单引号为双引号及调整数字格式,可解决Expecting property name和Expecting value错误,确保程序正常运行。

Python JSON解析常见报错分析

在使用Python语言并通过json库解析网络数据的过程中,可能会遇到两类编译错误:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: 以及 json.decoder.JSONDecodeError: Expecting value:。经过排查发现原因,特此记录总结,旨在为学习Python的同学提供参考。

初始运行的程序代码如下:

单引号导致的Expecting property name错误


import json
data='''
{
'name' : 'A',
'phone': { 'type' : 'intl', 'number' : +1 23456 },
'email' : {'hide' : 'yes'}
}'''
info=json.loads(data)
print("Name:",info["name"])
print("EmailAttri:",info["email"]["hide"])

运行后出现报错,提示内容为 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:。这表明数据格式中,string类型的数据必须使用双引号 "" 包裹,而不能使用单引号 ''。

将代码中的单引号逐一替换为双引号后,编译器依然报错:json.decoder.JSONDecodeError: Expecting value:。起初怀疑是代码缩进格式问题,反复修改后仍无果,且网上搜索未找到合适答案。最终通过与老师源代码逐一比对,发现错误根源在于 'number' 元素。该元素的值 '+1 23456' 实际上属于 string 类型,因此必须加上双引号。修改后的程序如下,可正确运行:

Expecting value错误的根源与修正方案


import json
data='''
{
"name" : "A",
"phone": { "type" : "intl", "number" : "+1 23456" },
"email" : {"hide" : "yes"}
}'''
info=json.loads(data)
print("Name:",info["name"])
print("EmailAttri:",info["email"]["hide"])

另一种解决方式是将 '+1 23456' 改写为整数类型 123456,这样无需添加双引号即可通过解析。在搜索该问题时,发现许多用户也遇到了 json.decoder.JSONDecodeError: Expecting value: 错误。从解决过程来看,主要原因通常是数据格式不符合JSON规范。因此,若处理从网络爬取的数据,需先检查其格式设置是否符合JSON要求,以确保程序编译顺利通过。

更多Python趣味知识与技术分享,欢迎关注微信公众号【码农那点事儿】。

总结

以上内容介绍了Python中报错 json.decoder.JSONDecodeError: Expecting value: 的解决方法,希望对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复大家!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表