【Python】JSONをファイルから読み込みする方法

この記事では、PythonでJSONファイルを読み込む方法と、読み込んだJSONデータを利用する方法、さらに例外処理の追加方法について解説します。

初心者の方でもわかりやすく、具体的なサンプルコードと実行結果の例を交えて説明します。

JSONデータの読み込みや利用に関する基本的な知識を身につけることができます。

目次から探す

JSONファイルの読み込み方法

JSON(JavaScript Object Notation)は、データを表現するための軽量なフォーマットです。

Pythonでは、JSONデータをファイルから読み込むことができます。

以下では、JSONファイルの読み込み方法について解説します。

ファイルを開く

まず最初に、PythonでJSONファイルを読み込むためには、ファイルを開く必要があります。

open()関数を使用してファイルを開きます。

以下のように、ファイルパスとモード(読み込みモード)を指定します。

file = open("data.json", "r")

ファイルからデータを読み込む

ファイルを開いたら、read()メソッドを使用してファイルからデータを読み込みます。

以下のように、read()メソッドを呼び出してデータを読み込みます。

data = file.read()

読み込んだデータをJSONとして解析する

読み込んだデータは、文字列として扱われます。

JSONデータをPythonのデータ構造に変換するには、jsonモジュールを使用します。

jsonモジュールのloads()関数を使用して、文字列をJSONとして解析します。

import json

json_data = json.loads(data)

これで、JSONデータがPythonのデータ構造(辞書やリストなど)として利用できるようになります。

以上が、JSONファイルを読み込むための基本的な手順です。

読み込んだJSONデータの利用方法

JSONファイルを読み込んだ後は、そのデータを使ってさまざまな操作を行うことができます。

ここでは、キーを指定して値を取得する方法、リスト内の要素にアクセスする方法、ネストされたオブジェクトの値にアクセスする方法について解説します。

キーを指定して値を取得する

JSONデータは、キーと値のペアで構成されています。

キーを指定することで、そのキーに対応する値を取得することができます。

例えば、以下のようなJSONデータがあるとします。

{
  "name": "John",
  "age": 25,
  "city": "Tokyo"
}

この場合、キーを指定して値を取得するには、以下のようなコードを使います。

import json

# JSONファイルを読み込む
with open('data.json') as f:
    data = json.load(f)

# キーを指定して値を取得する
name = data['name']
age = data['age']
city = data['city']

print(name)  # John
print(age)   # 25
print(city)  # Tokyo

リスト内の要素にアクセスする

JSONデータには、リスト(配列)の形式でデータが格納されている場合もあります。

リスト内の要素にアクセスするには、インデックスを指定します。

例えば、以下のようなJSONデータがあるとします。

{
  "fruits": ["apple", "banana", "orange"]
}

この場合、リスト内の要素にアクセスするには、以下のようなコードを使います。

import json

# JSONファイルを読み込む
with open('data.json') as f:
    data = json.load(f)

# リスト内の要素にアクセスする
fruits = data['fruits']
first_fruit = fruits[0]
second_fruit = fruits[1]
third_fruit = fruits[2]

print(first_fruit)   # apple
print(second_fruit)  # banana
print(third_fruit)   # orange

ネストされたオブジェクトの値にアクセスする

JSONデータには、オブジェクトがネストされている場合もあります。

ネストされたオブジェクトの値にアクセスするには、キーを連続して指定します。

例えば、以下のようなJSONデータがあるとします。

{
  "person": {
    "name": "John",
    "age": 25,
    "address": {
      "city": "Tokyo",
      "country": "Japan"
    }
  }
}

この場合、ネストされたオブジェクトの値にアクセスするには、以下のようなコードを使います。

import json

# JSONファイルを読み込む
with open('data.json') as f:
    data = json.load(f)

# ネストされたオブジェクトの値にアクセスする
name = data['person']['name']
age = data['person']['age']
city = data['person']['address']['city']
country = data['person']['address']['country']

print(name)     # John
print(age)      # 25
print(city)     # Tokyo
print(country)  # Japan

これらの方法を使って、読み込んだJSONデータを効果的に利用することができます。

JSONデータの構造に合わせて、適切なキーを指定して値にアクセスしましょう。

JSONデータの例は、ファイル名がdata.jsonであることを前提としています。

実際のファイル名に合わせて適宜変更してください。

また、JSONデータの構造やキーの名前も、実際のデータに合わせて適宜変更してください。

例外処理の追加

JSONファイルを読み込む際には、ファイルが存在しない場合や読み込みエラーが発生する可能性があります。

このようなエラーに対処するために、例外処理を追加することが重要です。

ファイルが存在しない場合の処理

JSONファイルを読み込む前に、まずファイルが存在するかどうかを確認する必要があります。

ファイルが存在しない場合には、適切なエラーメッセージを表示して処理を中断することが望ましいです。

以下は、ファイルが存在しない場合の処理の例です。

import json
import os

file_path = "data.json"

if not os.path.exists(file_path):
    print("指定されたファイルが存在しません。")
    exit()

# ファイルが存在する場合の処理
with open(file_path, "r") as file:
    data = json.load(file)
    # JSONデータの処理を行う

os.path.exists()関数は、指定されたパスが存在するかどうかを判定するために使用されます。

ファイルの読み込みエラーの処理

ファイルが存在する場合でも、読み込みエラーが発生する可能性があります。

例えば、ファイルが破損している場合やアクセス権限がない場合などです。

このようなエラーに対処するためには、例外処理を追加する必要があります。

以下は、ファイルの読み込みエラーが発生した場合の処理の例です。

import json

file_path = "data.json"

try:
    with open(file_path, "r") as file:
        data = json.load(file)
        # JSONデータの処理を行う
except IOError:
    print("ファイルの読み込みエラーが発生しました。")

IOErrorは、ファイルの読み込みエラーを示す例外クラスです。

これらの例外処理を追加することで、ファイルが存在しない場合や読み込みエラーが発生した場合にもプログラムが適切に処理されるようになります。

エラーメッセージの表示やエラーハンドリングの方法は、具体的な要件や状況に応じて適宜変更してください。

目次から探す