【Python】Jsonファイルを読み込むときに発生するエラーの解決方法
こんにちは、にわこまです。
今回は、pythonでjsonファイルを読み込もうとしたときに発生するエラーの解決方法を紹介します。具体的に言うと以下のようなエラーを解決します。
「json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line x column y (char z)」
※x、y、zにはそれぞれ数字が代入されます。
誤字脱字や分からない点、解決し欲しい問題がありましたらご連絡お願いいたします。
メールまたはTwitterのDMまで!
スポンサードサーチ
json.decoder.JSONDecodeErrorの解決方法
jsonファイルのダブルクォーテーション(”)やカンマ(,)、中括弧({})を確認する
ダブルクォーテーション、カンマ、中括弧の過不足を確認することでjson.decode.JSONDecodeErrorを解決することができます。
そもそも「Expecting property name enclosed in double quotes」とは、「プロパティ名がダブルクォーテーションで囲まれていません」というエラーです。
jsonファイルではシングルクォーテーション(’)は使えないため、文字列は全てダブルクォーテーションで囲まなければなりません。
Jsonライブラリ 公式ドキュメントはこちら
エラーのサンプルコード1(ダブルクォーテーション)
エラーが発生するサンプルコードとその実行結果を以下に示します。また、jsonファイルを以下に示します。
import json
path = "./json_valueerror.json"
with open(path, encoding="utf-8", mode="r") as f:
d = json.load(f)
print(d)
=== 実行結果 ===
Traceback (most recent call last):
File "json_valueerror.py", line 5, in <module>
d = json.load(f)
・
・
・
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 3 (char 4)
{
'Crow':{
"X":12,
"Y":34,
"Z":23
},
"Duck":{
"X":10,
"Y":29,
"Z":20
},
"Eagle":{
"X":19,
"Y":35,
"Z":25
},
"Flamingo":{
"X":30,
"Y":33,
"Z":31
}
}
上記のサンプルコードはjsonファイルを読み込み、その内容を表示するコードです。
jsonファイルの2行目の「Crow」がシングルクォーテーションで囲まれているためエラーが発生しました。
シングルクォーテーションをダブルクォーテーションに変えることでエラーを解決することができます。
エラーを解決したjsonファイルを以下に示します。
{
"Crow":{
"X":12,
"Y":34,
"Z":23
},
"Duck":{
"X":10,
"Y":29,
"Z":20
},
"Eagle":{
"X":19,
"Y":35,
"Z":25
},
"Flamingo":{
"X":30,
"Y":33,
"Z":31
}
}
pythonファイルの実行結果を以下に示します。pythonファイルは特に直す必要はありません。
{'Crow': {'X': 12, 'Y': 34, 'Z': 23}, 'Duck': {'X': 10, 'Y': 29, 'Z': 20}, 'Eagle': {'X': 19, 'Y': 35, 'Z': 25}, 'Flamingo': {'X': 30, 'Y': 33, 'Z': 31}}
エラーのサンプルコード2(カンマ)
エラーが発生するサンプルコードとその実行結果を以下に示します。また、jsonファイルを以下に示します。
import json
path = "./json_valueerror.json"
with open(path, encoding="utf-8", mode="r") as f:
d = json.load(f)
print(d)
=== 実行結果 ===
Traceback (most recent call last):
File "json_valueerror.py", line 5, in <module>
d = json.load(f)
・
・
・
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 6 column 3 (char 51)
{
"Crow":{
"X":12,
"Y":34,
"Z":23,
},
"Duck":{
"X":10,
"Y":29,
"Z":20
},
"Eagle":{
"X":19,
"Y":35,
"Z":25
},
"Flamingo":{
"X":30,
"Y":33,
"Z":31
}
}
上記のサンプルコードはjsonファイルを読み込み、その内容を表示するコードです。
jsonファイルの5行目の「」の後ろにカンマがあるためエラーが発生しました。
jsonファイルの5行目のカンマを削除することでエラーを解決することができます。
エラーを解決したjsonファイルを以下に示します。
{
"Crow":{
"X":12,
"Y":34,
"Z":23
},
"Duck":{
"X":10,
"Y":29,
"Z":20
},
"Eagle":{
"X":19,
"Y":35,
"Z":25
},
"Flamingo":{
"X":30,
"Y":33,
"Z":31
}
}
pythonファイルの実行結果を以下に示します。pythonファイルは特に直す必要はありません。
{'Crow': {'X': 12, 'Y': 34, 'Z': 23}, 'Duck': {'X': 10, 'Y': 29, 'Z': 20}, 'Eagle': {'X': 19, 'Y': 35, 'Z': 25}, 'Flamingo': {'X': 30, 'Y': 33, 'Z': 31}}
まとめ
今回は、pythonでjsonファイルを読み込もうとしたときに発生するエラーの解決方法を紹介しました。
具体的には「json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line x column y (char z)」というエラーを解決する方法を紹介しました。
JSONDecodeErrorとあるように、jsonのエラーであるためjsonファイルを確認するようにしましょう!
改めて解決方法を以下に示します。
jsonファイルのダブルクォーテーション(”)やカンマ(,)、中括弧({})を確認する
解決してほしいエラー、問題などがありましたらメールまたはTwitterのDMまで!
最後までお読みいただきありがとうございます。
スポンサードサーチ