使用json.load()读取JSON文件时遭遇Expecting property name错误求助
问题排查与解决
错误根源
你犯了一个典型的JSON读取误区:逐行读取并解析单个行,但你的JSON文件是一个完整的顶层JSON对象,单独的一行(比如第二行的 "ABCD": {)并不是有效的JSON结构,解析器自然会报错。
解决方案
如果你的JSON文件就是像示例里的单个完整对象,直接用json.load()读取整个文件即可,不需要逐行处理:
import json # 用with语句自动管理文件句柄,避免资源泄漏 with open(json_path) as f: data = json.load(f) print(data)
补充说明
如果你的文件是JSON Lines格式(每行一个独立的JSON对象),比如:
{"ABCD": {"IMAGE.jpg": {"LOSS":"CAR", ...}}} {"DEFG": {}}
那你的原代码才适用,但显然你的示例不属于这种场景。
你看到的报错Expecting property name enclosed in double quotes: line 2 column 1 (char 2),就是因为解析器尝试解析第二行时,这行只是大对象的一部分,没有完整的JSON结构,才会抛出格式错误。
内容的提问来源于stack exchange,提问作者PCG
相关产品推荐
相关产品推荐

