Python で JSON の読み込み

ここでは Python で JSON ファイルや JSON 文字列を読み込む方法についてご説明します。

JSON から Python オブジェクトへの変換表

JSON 文字列から Python オブジェクトに変換するには json モジュールを使って行うことができます。

デフォルトで JSON からの変換がサポートされているオブジェクトは以下のもので、それぞれ次のように変換されます。

JSONPython
objectdict(辞書)
arraylist(リスト)
stringstr(文字列)
number (int)int(整数)
number (real)float(浮動小数点数)
trueTrue(ブール値)
falseFalse(ブール値)
nullNone

JSON 文字列を Python オブジェクトに変換する

Python で JSON の文字列を Python のオブジェクトに変換するには、json モジュールの loads() 関数を使って行うことができます。

例えば、次のような JSON の文字列を Python の辞書オブジェクトに変換したい時は、次のようにできます。

import json

student_json = '{"name": "Suzuki", "age": 15, "gender": "male"}'

student = json.loads(student_json)

print(student_json)
print(type(student_json))
print(student)
print(type(student))

実行結果は次のようになります。 print() すると同じようにみえますが、型を確認すると、student の型が dict(辞書)になっているのがわかります。

JSON の文字列が不正で変換できなかった場合は JSONDecodeError のエラーになります。


JSON ファイルから Python オブジェクトに読み込む

Python で JSON ファイルからデータを読み込むのと同時に Python オブジェクトに変換するには json モジュールの load() 関数が使えます。

load() 関数の必須の引数は「データを読み込むファイルオブジェクト」のみで、変換した Python のオブジェクト返します。


例えば、次のような student.json ファイルを読み込んで Python のオブジェクトに変換したい時は、次のようにできます。

Python から JSON へ変換

import json

with open("student.json") as f:
    student = json.load(f)

print(student)
print(type(student))

実行結果は次のようになり、student.json に保存されていた JSON の文字列を読み込み、Python の辞書オブジェクトに変換できました。

こちらも、ファイルの中の JSON の文字列が不正で変換できなかった場合は JSONDecodeError のエラーになります。


以上、Python で JSON ファイルや JSON 文字列を読み込む方法についてご説明しました。

© 2024 やさしい Python 入門