Python で辞書を JSON に保存する

Muhammad Waiz Khan 2023年1月30日
  1. Python の pickle.dump() メソッドを使って辞書を JSON に保存する
  2. Python の json.dump() メソッドを使って辞書を JSON に保存する
Python で辞書を JSON に保存する

このチュートリアルでは、Python で辞書を JSON ファイルとして保存するための様々な方法を説明します。JSON フォーマットは一般的に普及している軽量なファイルフォーマットで、主に Web サーバとアプリケーション間でデータを保存したり転送したりするために使用されます。これは完全に言語に依存しないファイル形式であり、人間にとっては理解しやすいものです。

Python の pickle.dump() メソッドを使って辞書を JSON に保存する

pickle モジュールの dump(obj, file, ..) メソッドは、データオブジェクト obj をオープンしたファイルオブジェクト file に書き込む。辞書を JSON 形式で保存するには、.json ファイルのファイルオブジェクトと保存する辞書が必要であり、それらを dump() メソッドに渡す必要があります。

また、pickle ライブラリの load() メソッドを用いて .json ファイルから保存した辞書を読み込むこともできます。pickle.load(file, ..) メソッドはファイルを読み込み、保存に用いたデータ型のオブジェクト(辞書、リスト、セットなど)を返します。

以下の例では、dump() メソッドを用いて Python で辞書を JSON ファイルとして保存する方法を示します。

import pickle

my_dict = {"Ali": 9, "Sid": 1, "Luna": 7, "Sim": 12, "Pooja": 4, "Jen": 2}
with open("data.json", "wb") as fp:
    pickle.dump(my_dict, fp)

with open("data.json", "rb") as fp:
    data = pickle.load(fp)
print(data)
print(type(data))

出力:

{'Ali': 9, 'Sid': 1, 'Luna': 7, 'Sim': 12, 'Pooja': 4, 'Jen': 2}
<class 'dict'>

Python の json.dump() メソッドを使って辞書を JSON に保存する

json モジュールの dump(obj, file, ..) メソッドは、データオブジェクト obj をオープンファイルオブジェクト file に書き込みます。また、json モジュールの load(file, ..) メソッドもファイルを読み込み、データを保存したデータ型のオブジェクトを返します。私たちの場合は辞書です。

上で説明したように、辞書を JSON ファイルとして保存するには、辞書データを保存するための .json ファイルのオープンファイルオブジェクトが必要です。また、.json ファイルからデータを読み込む必要があります。

以下のコード例は、json.dump() メソッドと json.load() メソッドを用いて、Python で辞書を JSON ファイルに保存して読み込む方法を示しています。

import json

my_dict = {"Ali": 9, "Sid": 1, "Luna": 7, "Sim": 12, "Pooja": 4, "Jen": 2}
with open("data.json", "w") as fp:
    json.dump(my_dict, fp)

with open("data.json", "r") as fp:
    data = json.load(fp)
print(data)
print(type(data))

出力:

{'Ali': 9, 'Sid': 1, 'Luna': 7, 'Sim': 12, 'Pooja': 4, 'Jen': 2}
<class 'dict'>
注意
上記のコード例で示されているように、pickle メソッドと json メソッドの主な違いは、pickle メソッドはバイナリモードのファイルオブジェクトの読み書きを必要とし、json メソッドは単純な読み書きモードのファイルオブジェクトを必要とすることです。

関連記事 - Python Dictionary

関連記事 - Python JSON