この記事では、PythonでJSONファイルと辞書型オブジェクトを相互に変換する方法について詳しく解説します。具体的なコード例とその詳細な解説、さらには応用例まで、一通り網羅しています。
目次
はじめに
JSON(JavaScript Object Notation)は、データ交換のフォーマットとして広く使用されています。Pythonでも、このJSONファイルを読み書きする必要がよくあります。特に、APIを利用する際や設定ファイルを扱う場合などにその需要は高まります。
基本的な使い方
Python標準ライブラリには、JSONの読み書きを簡単に行える`json`モジュールが用意されています。以下は基本的な使い方です。
JSONファイルの読み込み
import json
# JSONファイルを読み込む
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# データを表示
print(data)
このコードでは、`data.json`という名前のJSONファイルを読み込み、その内容をPythonの辞書型オブジェクトとして`data`に格納しています。
辞書型オブジェクトをJSONファイルに書き出す
import json
# 辞書型データ
data = {
'name': 'John',
'age': 30,
'city': 'Tokyo'
}
# JSONファイルに書き出す
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f)
`data`変数に格納された辞書型オブジェクトを、`data.json`という名前のJSONファイルに書き出しています。
詳細解説
インデントを設定する
デフォルトではJSONデータが1行で出力されますが、`indent`パラメータを使うことでインデント(字下げ)を設定できます。
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
応用例
例1: APIレスポンスの処理
APIから返ってきたJSONデータをPythonの辞書型オブジェクトとして処理する例です。
import requests
import json
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
data = json.loads(response.text)
print(data)
例2: 設定ファイルの読み書き
アプリケーションの設定をJSONファイルとして保存、読み込む例です。
# 設定を読み込む
with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)
# 設定を変更
config['theme'] = 'dark'
# 設定を保存
with open('config.json', 'w', encoding='utf-8') as f:
json.dump(config, f, indent=4)
例3: データのフィルタリングと保存
読み込んだJSONデータから特定の条件に合致するデータだけを取り出し、新たなJSONファイルとして保存する例です。
with open('data.json', 'r', encoding='utf-8') as f:
all_data = json.load(f)
filtered_data = [item for item in all_data if item['age'] > 20]
with open('filtered_data.json', 'w', encoding='utf-8') as f:
json.dump(filtered_data, f, indent=4)
まとめ
PythonでJSONファイル
と辞書型オブジェクトの相互変換は、標準ライブラリの`json`モジュールを使って非常に簡単に行えます。また、APIとの連携や設定ファイルの管理、データのフィルタリングなど、多様な応用例でこの知識は役立ちます。
コメント