複数の JSON ファイルに分けて保存したデータを、まとめて読み込んで統合する方法を紹介します。これにより「分割保存したデータを一つにまとめて扱う」ことができます。
サンプルコード
import json
def load_and_merge_json(files):
merged = [] # 統合結果を入れるリスト
for filename in files:
with open(filename, "r", encoding="utf-8") as f:
data = json.load(f) # JSONを読み込む
# 読み込んだデータがリストなら extend、辞書なら append
if isinstance(data, list):
merged.extend(data)
else:
merged.append(data)
return merged
# --- 複数ファイルを指定して読み込み・統合 ---
files = ["filtered_results.json", "results.json"]
merged_data = load_and_merge_json(files)
# --- 統合結果を新しいファイルに保存 ---
with open("merged_results.json", "w", encoding="utf-8") as f:
json.dump(merged_data, f, ensure_ascii=False, indent=2)
print("複数の JSON ファイルを統合して merged_results.json に保存しました!")
Python保存される JSON ファイルの例(merged_results.json)
[
{"A": 3, "B": 3, "C": 5, "result": 45},
{"A": 5, "B": 3, "C": 3, "result": 45},
{"A": 5, "B": 5, "C": 3, "result": 75},
{"A": 5, "B": 3, "C": 5, "result": 75},
{"small": [{"A": 1, "B": 1, "C": 1, "result": 1}, ...]},
{"medium": [{"A": 3, "B": 3, "C": 5, "result": 45}, ...]},
{"large": [{"A": 5, "B": 5, "C": 3, "result": 75}, ...]}
]
解説ポイント
- 複数ファイルをループで読み込む →
for filename in files: - リスト型なら extend → 複数要素をまとめて追加。
- 辞書型なら append → 1つの要素として追加。
- 統合結果を新しいファイルに保存 →
merged_results.jsonにまとめる。
応用の場面
- 分割保存したログを統合 → 日ごとに保存したログをまとめる。
- 検索結果の統合 → 複数条件で保存した結果を一つにまとめる。
- データ分析前の前処理 → 複数ファイルを統合して一括処理。
まとめ
- 複数の JSON ファイルを読み込んで 一つのリストに統合できる。
extendとappendを使い分けることで、リスト型・辞書型どちらにも対応可能。- 統合した結果を新しい JSON ファイルに保存すれば、後で再利用や共有が簡単。

