Pythonのjson.dump
関数は、Pythonのオブジェクト(辞書やリストなど)をJSON形式に変換し、ファイルに直接書き込むための関数です。ファイルに保存したいデータをJSON形式に変換して出力する際に使用されます。
基本構文
- obj: 書き込むPythonオブジェクト(辞書、リスト、数値、文字列など)
- fp: 書き込み対象のファイルオブジェクト
- indent: インデントのスペース数(見やすく整形するため)
- sort_keys: 辞書のキーをアルファベット順に並べる(デフォルトは
False
)
例:ファイルにJSONデータを書き込む
import json
data = {
"name": "Alice",
"age": 25,
"city": "New York",
"languages": ["English", "Spanish"]
}
# JSONファイルに書き込み
with open('data.json', 'w') as file:
json.dump(data, file, indent=4)
このコードは、Pythonの辞書data
をJSON形式に変換し、data.json
というファイルに書き込みます。indent=4
を指定しているため、JSONデータがインデント付きで見やすく整形されて書き込まれます。
書き込まれるdata.json
の内容
"name": "Alice",
"age": 25,
"city": "New York",
"languages": [
"English",
"Spanish"
]
}
主なオプション
-
indent: 整形されたJSONファイルを書き出すためにインデントのスペース数を指定します。インデントなしにするとコンパクトな出力になります。
-
sort_keys:
True
にすると、辞書のキーをアルファベット順に並べ替えます。デフォルトはFalse
です。 -
ensure_ascii: デフォルトで
True
になっており、非ASCII文字をエスケープします。例えば、日本語などの文字をそのまま出力する場合はFalse
にします。
json.dump
とjson.dumps
の違い
json.dump
: PythonオブジェクトをJSON形式に変換してファイルに直接書き込みます。json.dumps
: PythonオブジェクトをJSON形式に変換して文字列として返します(ファイルには書き込まない)。
json.dumps
の例
data = {"name": "Alice", "age": 25}
json_string = json.dumps(data, indent=4)
print(json_string)
エラーハンドリング
ファイル操作やデータの形式によってエラーが発生する場合があるため、エラーハンドリングを加えるとより安全です。
Python
import json
data = {"name": "Alice", "age": 25}
try:
with open('data.json', 'w') as file:
json.dump(data, file, indent=4)
except IOError:
print("ファイルの書き込みに失敗しました。")
まとめ
json.dump
はPythonのデータをJSON形式でファイルに書き込むのに便利な関数です。インデントやキーの並び順などをオプションで設定でき、データを見やすい形式で保存することができます。