使用Python读取本地JSON文件时遇JSONDecodeError问题求助
解决Python读取JSON文件时的JSONDecodeError问题
嘿,我一眼就看出问题出在哪啦!你用错了JSON模块里的函数哦~
问题根源
json.loads()这个函数是用来解析JSON格式的字符串的,但你直接把文件名'Data2019.json'传进去了——这个字符串本身根本不是有效的JSON内容,所以解析器才会抛出JSONDecodeError,告诉你"期待有效JSON值"。
正确的解决方法
我们有两种简单的方式来读取JSON文件,推荐第一种:
方法1:使用json.load()直接读取文件对象(推荐)
json.load()可以直接接收打开的文件对象,自动帮你完成文件读取和JSON解析的工作,还能通过with语句自动管理文件资源:
import json # 用with语句打开文件,确保文件自动关闭 with open('Data2019.json', 'r', encoding='utf-8') as json_file: data = json.load(json_file) # 遍历输出Jointure里的内容 for item in data['Jointure']: print(item)
方法2:先读取文件内容为字符串,再用json.loads()解析
如果你一定要用loads(),那得先把文件里的内容读成字符串,再传给它:
import json # 先读取文件内容到字符串变量 with open('Data2019.json', 'r', encoding='utf-8') as json_file: json_content = json_file.read() # 解析JSON字符串 data = json.loads(json_content) # 遍历输出 for item in data['Jointure']: print(item)
额外注意事项
- 确保你的
Data2019.json文件和Python脚本在同一个目录下,如果不在,记得传入完整的文件路径,比如C:\Users\HP\Desktop\Data2019.json - 检查你的JSON文件格式是否正确,你提供的示例JSON是有效的,但如果实际文件里有语法错误(比如逗号缺失、引号不匹配),也会触发类似的报错
内容的提问来源于stack exchange,提问作者Mastour Ikhlass




