json 属性名称应括在双引号中:第2行第1列(字符2)[重复]

juud5qan  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(217)

此问题在此处已有答案

Error loading json in python line by line?(4个答案)
3天前关闭。
我有简单的Python代码来读取JSON文件,但是当我使用json.load()函数时,总是得到错误Expecting property name enclosed in double quotes: line 2 column 1 (char 2)

import json

f = open(json_path)
for line in f:
    print(line)
    print(json.loads(line))

很多人都遇到过同样的错误,但似乎主要是格式问题。我没有看到这里的格式有任何问题。我的双引号也很好。
这是我的JSON文件示例:

{
  "ABCD": {
    "IMAGE.jpg":{
      "LOSS":"CAR",
      "UNIT_ID":"14_1",
      "DESCRIPTION":"Marginal",
      "IMAGE_NAME":"car.jpg",
      "CODE":"SURFACE",
      "DEPTH":1.5
    }
  },
  "DEFG": {},
  "HIJK": {},
  "LMNO": {}
}
yruzcnhs

yruzcnhs1#

问题是你试图一行一行地加载JSON文件。相反,你需要一次加载整个文件。与CSV文件不同,JSON不是基于行的。单独地,每一行没有任何意义;只有当所有的都在一起时才有意义。
另外,因为你要加载一个文件,所以最好使用json.load()而不是json.loads()json.loads()需要一个字符串,而你可以直接传递一个文件处理程序json.load(),而不需要先读取:

import json

with open('test.json') as f:
    print(json.load(f))

相关问题