概要
- Pythonで
pathlib
とjson.load
を使って、JSONファイル内のキーとその値を取得する方法を記載します。
前提
- Python 3.10.9
実行方法
- Jsonファイルに以下のように記載します。
foo/hoge_key.json
{
"name": "hoge",
"gender": "male",
"age" : "29"
}
- 次に、
pathlib
関数を利用して以下のように記載します。
foo/views.py
from pathlib import Path
import json
key_path = Path('./foo/hoge_key.json')
with open(key_path, 'r') as f:
key_json: Dict = json.load(f)
name = key_json.get('name')
gender = key_json.get('gender')
age = key_json.get('age')
- 上記コードにより、以下が実施できます。
-
pathlib.Path
クラスを使って、hoge_key.json
のパスを表すkey_path
変数を定義。 -
open()
関数を使ってファイルを開き、JSON データを読み込んでkey_json
変数に格納。 -
key_json
変数からname
、gender
、age
の値を取り出して、それぞれの変数に代入。 - 上記により、変数
name
、gender
、age
を使うことで、JSONファイルで定義した値が使用できるようになりました。
json.load()
とは?
- JSON データを Python オブジェクトに変換するための関数。
- JSON 形式の文字列またはファイルオブジェクトを引数に取り、それを Python の辞書やリストなどのオブジェクトに変換します。
- 標準ライブラリの
json
モジュールを使用(import json
)。 - 参考:
パース (parse)とは?
- JSON データを扱う際の「パース (parse)」とは、JSON 形式で書かれた文字列を解析して、Python のデータ構造に変換することを指しています。
- JSONをPythonの中で利用できるよう変換する、という意味ですね。
- ちなみに、
json.load()
の逆で、「Pythonの値をJSONデータに変換」する際は、json.dumps()
関数を利用します。 - 参考:
例外処理について
- 上記の場合、
hoge_key.json
があり、中身も正しい前提ですが、以下のような例外処理を加えるべきという場合もあると思います。-
FileNotFoundError
: 該当のファイルが存在しない場合のエラー -
json.JSONDecodeError
: JSONデータが不正である場合のエラー
-
- 日本語で文字列がUnicodeエスケープされてしまう場合は以下を参照ください。