json.JSONDecodeError
JSON形式の文字列を解析(パース)しようとして、その文字列が正しいJSON形式になっていなかったときに発生するエラーです。生成AIのAPIなど、外部から取得したデータを扱うときによく出会います。
原因
APIから返ってきた文字列が空だったりエラーメッセージだったりして、期待していたJSON形式になっていないことが原因です。
エラーになるコード例
import json
data = json.loads('これはJSONではありません')修正版
import json
text = 'これはJSONではありません'
try:
data = json.loads(text)
except json.JSONDecodeError:
print('JSONとして解析できませんでした')よくある間違い
- APIのレスポンスが成功しているかを確認せずに、いきなりjson.loads()してしまう
- シングルクォートで書かれたPythonの辞書を、そのままJSONとして解析しようとしてしまう(JSONの文字列はダブルクォートが必須)