求助:为何这段JSON无法在Python中加载并解析?
解决JSON加载失败的问题
你遇到了两个关键问题,导致JSON解析一直失败,我来帮你一步步排查解决:
问题1:JSON字符串格式不规范
在你的JSON数据里,第一个email字段的值veljkov02@gail.com没有用双引号包裹——JSON规范明确要求所有字符串类型的值必须用双引号括起来,这是直接触发JSONDecodeError的核心原因。
问题2:脚本文件名与标准库冲突
你的脚本文件名叫json.py,当你执行import json时,Python会优先加载当前目录下的json.py,而不是Python标准库中的json模块。这会导致你调用的json.loads不是标准库的正确方法,进一步加剧了解析失败的问题。
修正后的完整代码
首先把你的脚本文件名改成别的(比如json_learn.py),然后替换成以下修正后的代码:
import json # 修正了email字段的引号问题,同时格式化JSON方便阅读 data = '''{ "people": [ { "name": "veljko", "age": "20", "email": "veljkov02@gail.com", "educated": "true" }, { "name": "aleksandar", "age": "24", "email": "marko99@gmail.com", "educated": "false" } ] }''' men = json.loads(data) print(men)
验证步骤
- 务必重命名脚本文件,避免和Python标准库的模块名重复;
- 替换修正后的代码;
- 运行脚本,现在应该能正常解析JSON并打印出对应的字典数据了。
新手阶段可以用JSON格式校验工具(直接搜索“JSON validator”就能找到)快速排查格式问题,能节省不少时间~
内容的提问来源于stack exchange,提问作者Veljko2002




