長くて複雑な JSON ファイルからデータをロードする Python コード:
with open(filename, "r") as f:
data = json.loads(f.read())
(注: 最適なコード バージョンは次のとおりです。
with open(filename, "r") as f:
data = json.load(f)
ただし、どちらも同様の動作を示します)
多くの種類の JSON エラー (区切り文字の欠落、文字列のバックスラッシュの誤りなど) について、JSON エラーが見つかった行と列の番号を含む便利なメッセージが出力されます。
ただし、他のタイプの JSON エラー (古典的な「リストの最後の項目にカンマを使用する」などのエラーだけでなく、true/false を大文字にするなどの他のエラーも含む) の場合、Python の出力は次のようになります。
Traceback (most recent call last):
File "myfile.py", line 8, in myfunction
config = json.loads(f.read())
File "c:\python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "c:\python27\lib\json\decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\python27\lib\json\decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
そのタイプの ValueError の場合、JSON ファイルのどこにエラーがあるかを Python に教えてもらうにはどうすればよいでしょうか?