我有以下JSON文件:
{
"test": "test",
}
我正在尝试使用JSON Python库加载它:
import json
with open(file.json, "r") as file:
data = json.load(file)
但是,它会引发以下错误:
ValueError: Expecting property name: line 3 column 1 (char 18)
我做错了什么?
编辑:
我设法通过以下方式解决了这个问题:
filtered_json = f.read().decode('utf-8-sig')
out_json = json.loads(filtered_json)
答案 0 :(得分:0)
这是检查您的字符串是否可以加载到python JSON对象中的快速方法:打开任何在线JSON验证器(例如https://jsonlint.com/)并键入您的字符串,然后尝试对其进行验证。如果在线工具将您的字符串报告为无效的JSON,则在该字符串上调用的json.loads()函数很可能也会失败并引发异常。
在上述站点中输入的示例字符串被报告为无效的JSON。该网站还暗示了问题的根源:验证器希望字符串后跟逗号,但取而代之的是获取JSON终止符。
现在,如果通过删除有问题的逗号来修复示例JSON,您将注意到您仍然会收到错误消息,因为您的 with open 语句调用的值不存在或可能不存在定义。最可能是因为您要打开一个名为“ file.json” 的文件,而不是变量 file.json 的内容。
在这里,您可以修复代码以将“ file.json”的内容实际读入数据变量:
import json
with open("file.json") as file:
data = json.load(file)
print(data)
请注意,文件名是以字符串形式给出的。