首页 > 解决方案 > Json.loads() 和 json.load() 不解析我的文件

问题描述

我试图解码我的 json 文件以删除一个对象,我总是收到以下错误:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我在很多网站上搜索过,有人有答案吗?

蟒蛇文件:

db = open(dbn + '.json', 'r') # dbn is defined earlier in the program
name = input('Profile to delete:    ')
dbl = json.load(db) # <- json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
i = 0
while i != len(dbl):
    if dbl[i]['First Name'] == name:
        dbl.pop(i)
db.close()
db = open(dbn + '.json', 'w')
obj = json.dumps(dbl, indent=4)
db.write(obj + ',' + '\n' + ']')
db.close()

JSON 文件中没有错误。基本结构:

[
    { 'x':'y'
    },
    { 'y':'x'
    }
]

谢谢。

标签: pythonjson

解决方案


您提供的 JSON 结构无效。
Python JSON 库需要双引号而不是单引号,因此您的 JSON 文件应如下所示:

[
    { "x":"y"
    },
    { "y":"x"
    }
]

推荐阅读