エラー辞典

json.JSONDecodeError

JSON形式の文字列を解析(パース)しようとして、その文字列が正しいJSON形式になっていなかったときに発生するエラーです。生成AIのAPIなど、外部から取得したデータを扱うときによく出会います。

原因

APIから返ってきた文字列が空だったりエラーメッセージだったりして、期待していたJSON形式になっていないことが原因です。

エラーになるコード例

import json
data = json.loads('これはJSONではありません')
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

修正版

import json
text = 'これはJSONではありません'
try:
    data = json.loads(text)
except json.JSONDecodeError:
    print('JSONとして解析できませんでした')

よくある間違い

  • APIのレスポンスが成功しているかを確認せずに、いきなりjson.loads()してしまう
  • シングルクォートで書かれたPythonの辞書を、そのままJSONとして解析しようとしてしまう(JSONの文字列はダブルクォートが必須)

← エラー辞典に戻る