これはPythonでJSONファイルを使用しようとする最初の試みですが、この問題に関して多くのことを読んだことがありますが、私はまだ非常に混乱しています。 jason.jsonという名前のファイルを1行ずつ読み込み、それを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 Pietersの解決策は行く方法です。しかし、あなたがこの問題を抱えている理由は、ファイルを手作業で作成したことや、改行があるような場所からファイルをコピーしたことがあるためです。通常、.jsonファイルに改行がないため、唯一の行は有効なjsonになります。 'json.dump(my_data、my_file)'を使ってファイルにデータ構造を保存することができます。改行はなく、あなたのアプローチを使って読み込むこともできます。 – Akavall
@Akavall:いいえ、JSONは簡単に改行できます。例えば、 'json.dump(my_data、my_file、indent = 4)'を使ってください。 JSONは実際には単一行形式として扱われることはありませんでした。 –