PythonでJSON形式のデータを読み込み方法とエラー対処法

JSONJavaScript Object Notation)は、Web APIやデータベースなどでよく使用される軽量のデータ交換フォーマットです。Pythonは、JSONフォーマットをサポートしており、ファイルからJSON形式でデータを読み込むことができます。本記事では、PythonJSONデータを読み込み、整形して出力する方法を解説します。

JSONファイルの読み込み

まず、JSONファイルを読み込むために、Pythonの標準ライブラリであるjsonをインポートします。以下の例では、sample.jsonというJSONファイルを読み込みます。

import json

with open('sample.json') as f:
    data = json.load(f)

withステートメントは、ファイルを自動的に閉じるために使用されます。json.load()関数は、JSONデータを読み込み、Pythonの辞書オブジェクトに変換します。これにより、変数dataJSONデータが格納されます。

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}')

tryexcept文を使用することで、JSONDecodeErrorが発生した場合には、エラーメッセージを表示することができます。JSONファイルが破損している場合には、ファイルを修正する必要があります。

以上のように、JSONファイルの読み込み時に発生する可能性のあるエラーと、それらのエラーに対する対応法を紹介しました。JSONデータを読み込み、整形することは、Pythonプログラムで非常に一般的なタスクです。本記事で紹介した方法を参考にして、自分のプログラムでJSONファイルを扱うことができるようになりましょう。

Pythonによるシステム開発

Pythonを利用した自然言語処理の学習には下記のような講座の利用が有効です。

click.linksynergy.com

click.linksynergy.com