【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ファイルではシングルクォーテーション(’)は使えないため、文字列は全てダブルクォーテーションで囲まなければなりません。

 

  

 

エラーのサンプルコード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まで!

 

  

最後までお読みいただきありがとうございます。


スポンサードサーチ