这是我第一次尝试在Python中使用JSON文件,虽然我已经阅读了很多关于此问题的内容,但我仍然很困惑。我想逐行读取名为jason.json的文件,将其存储到名为data的列表中,然后将其打印出来。但是,我总是得到以下错误:在python中打开JSON文件
Traceback (most recent call last):
File "try.py", line 6, in <module>
data.append(json.loads(line))
File "C:\Users\...\Python35\lib\json\__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "C:\Users\...\Python35\lib\json\__init__.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\...\Python35\lib\json\__init__.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)
这是我的代码:
import json
data = []
with open('jason.json') as f:
for line in f:
data.append(json.loads(line))
print(data)
这是jason.json:
{
"E(2,3)" : "A common Afro-Cuban drum pattern",
"E(2,5)" : "A rhythm found in Greece",
"E(3,4)" : "It is the archetypal pattern of the Cumbia from Colombia",
"E(3,5)" : "Persian rhythm"
}
预先感谢您!
你需要下载一气呵成的整个文件的东西;每个行都是**不是**有效的JSON。 – jonrsharpe
@Martijn彼得斯解决方案是要走的路。但是,您遇到此问题的原因是您可能手动创建了该文件,或者从其他位置复制了该文件,以致它有换行符。通常.json文件没有换行符,因此您唯一的行将是有效的json。您可以使用'json.dump(my_data,my_file)'将数据结构保存到文件中,它不会有换行符,并且您可以(尽管不建议)使用您的方法加载它。 – Akavall
@Akavall:不,JSON很容易有换行符。例如,使用'json.dump(my_data,my_file,indent = 4)'。 JSON从来没有被设计成真正被视为单行格式。 –