📦
【Python】JSON 形式のデータを辞書型のオブジェクトとして利用する
※この記事はQiitaの本記事にて投稿した記事に加筆・修正し、移行した記事です。
JSON 形式のデータは辞書型のオブジェクトとして利用できる
拡張子が.json
のファイルや、WebAPI を叩いて得られた JSON 形式のデータは
Python 上において、辞書型のオブジェクトとして利用することができます。
要約
- Python において、JSON 形式のデータは辞書型のオブジェクトとして利用ができる。
-
json
モジュールを利用する。 - ファイルの読み込みは
json.load()
を利用する。 - 文字列の読み込みは
json.loads()
を利用する。 - 書き込みには
json.dumps()
を利用する。
JSON モジュールについて
Python において、JSON 形式データを利用するためには json
モジュールを import
する必要があります。
import json
json
モジュールを使ってみる
json
モジュールを使用して、JSON 形式のデータを読み書きしてみます。
辞書型のデータを作成し、JSON ファイルに保存する
Python で作成した辞書型のオブジェクトは、json
モジュールを利用することで、JSON ファイルに保存することができます。
json_write.py
import json
d = {"name":"ndj", "place":["Qiita", "Twitter", "YouTube"], "age": 25}
with open("ndj.json", mode="w") as f:
d = json.dumps(d)
f.write(d)
ndj.json
{
"name": "ndj",
"place": ["Qiita", "Twitter", "YouTube"],
"age": 25
}
辞書型のオブジェクトを JSON 形式のファイルに保存するためには、json.dumps()
を用いて、
辞書型のオブジェクトを文字列型に変換する必要があります。
json.dumps()
は、キーを強制的に文字列へ変換する
個人的に注意したい点としては、json.dumps()
を行った際に、全てのキーに対して、文字列型への強制的な変換が行われることですね。
write_json.py
import json
d = {1:"one", 100:"hundred", 1000:"thousand"}
with open("numbers.json", mode="w") as f:
d = json.dumps(d)
f.write(d)
numbers.json
{
"1": "one",
"100": "hundred",
"1000": "thousand"
}
保存した JSON 形式のデータを読み込み、辞書型のオブジェクトに変換する
上記で保存した JSON 形式のファイルは辞書型のオブジェクトとして利用することができます。
WebAPI などを叩いて得られた JSON 形式のデータも同様です。
json.load()
を用いる
JSON ファイルを読み込む際は、 開いたファイルに対して、 json.load()
を用いることで、辞書型のオブジェクトを得ることができます。
read_json.py
import json
d = {}
with open("ndj.json", mode="r") as f:
d = json.load(f)
json.loads()
を用いる
文字列型のオブジェクトを辞書型に変換する際は、json.load()
を用いた場合と同様に、辞書型に変換することができます。
read_json.py
import json
s = '{"name": "ndj", "place": ["Qiita", "Twitter", "YouTube"], "age": 25}'
d = {}
d = json.loads(s)
Discussion