Python で JSON の読み込み
ここでは Python で JSON ファイルや JSON 文字列を読み込む方法についてご説明します。
JSON から Python オブジェクトへの変換表
JSON 文字列から Python オブジェクトに変換するには json モジュールを使って行うことができます。
デフォルトで JSON からの変換がサポートされているオブジェクトは以下のもので、それぞれ次のように変換されます。
JSON | Python |
---|---|
object | dict(辞書) |
array | list(リスト) |
string | str(文字列) |
number (int) | int(整数) |
number (real) | float(浮動小数点数) |
true | True(ブール値) |
false | False(ブール値) |
null | None |
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 のオブジェクトに変換したい時は、次のようにできます。
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 文字列を読み込む方法についてご説明しました。