JSON(JavaScript Object Notation)は、Web APIやデータベースなどでよく使用される軽量のデータ交換フォーマットです。Pythonは、JSONフォーマットをサポートしており、ファイルからJSON形式でデータを読み込むことができます。本記事では、PythonでJSONデータを読み込み、整形して出力する方法を解説します。
JSONファイルの読み込み
まず、JSONファイルを読み込むために、Pythonの標準ライブラリであるjson
をインポートします。以下の例では、sample.json
というJSONファイルを読み込みます。
import json with open('sample.json') as f: data = json.load(f)
with
ステートメントは、ファイルを自動的に閉じるために使用されます。json.load()
関数は、JSONデータを読み込み、Pythonの辞書オブジェクトに変換します。これにより、変数data
にJSONデータが格納されます。
JSONデータの整形
読み込んだJSONデータは、Pythonの辞書オブジェクトとして格納されています。このため、Pythonの辞書オブジェクトと同様に、JSONデータを整形することができます。以下の例では、読み込んだJSONデータを整形して出力します。
import json with open('sample.json') as f: data = json.load(f) print(json.dumps(data, indent=4))
json.dumps()
関数は、PythonのオブジェクトをJSON形式の文字列に変換します。indent
パラメータは、整形時に使用するインデントの数を指定します。この例では、indent=4
に設定されているため、インデントは4つのスペースで行われます。これにより、整形されたJSONデータが出力されます。
エラーの対応法
JSONファイルを読み込む際には、ファイルが存在しない場合や、ファイルが破損している場合など、エラーが発生する可能性があります。以下に、エラーが発生した場合の対応法を紹介します。
FileNotFoundErrorの対応法
ファイルが存在しない場合には、FileNotFoundError
が発生します。この場合は、ファイルが存在するかどうかを確認する必要があります。以下のように、os.path.exists()
関数を使用して、ファイルが存在するかどうかを確認することができます。
import os import json filename = 'sample.json' if os.path.exists(filename): with open(filename) as f: data = json.load(f) else: print(f'Error: File not found: {filename}')
os.path.exists()
関数は、指定されたパスにファイルが存在する場合にはTrue
を、存在しない場合にはFalse
を返します。この関数を使用することで、ファイルが存在しない場合にはエラーメッセージを表示することができます。
JSONDecodeErrorの対応法
JSONファイルが破損している場合には、JSONDecodeError
が発生します。この場合は、ファイルが正しく書式化されているかどうかを確認する必要があります。
import json filename = 'sample.json' try: with open(filename) as f: data = json.load(f) except json.JSONDecodeError: print(f'Error: File is not properly formatted: {filename}')
try
とexcept
文を使用することで、JSONDecodeError
が発生した場合には、エラーメッセージを表示することができます。JSONファイルが破損している場合には、ファイルを修正する必要があります。
以上のように、JSONファイルの読み込み時に発生する可能性のあるエラーと、それらのエラーに対する対応法を紹介しました。JSONデータを読み込み、整形することは、Pythonプログラムで非常に一般的なタスクです。本記事で紹介した方法を参考にして、自分のプログラムでJSONファイルを扱うことができるようになりましょう。