この記事では、Pythonの`json.dump`メソッドを使って、PythonオブジェクトをJSONファイルに書き込む方法について詳しく解説します。基本的な使用法から、オプションによるカスタマイズ、さらには応用例までを網羅的に取り上げます。
目次
基本的な使用法
`json.dump`メソッドを使用する際の最もシンプルな形は以下のようなものです。
import json
data = {'name': 'Alice', 'age': 30}
with open('data.json', 'w') as f:
json.dump(data, f)
このコードの解説
1. `import json`:jsonモジュールをインポートします。
2. `data`:保存したいPythonオブジェクト(ここでは辞書型)を作成します。
3. `with open(‘data.json’, ‘w’) as f`:’data.json’という名前のファイルを書き込みモードで開きます。
4. `json.dump(data, f)`:`data`オブジェクトをJSON形式でファイルに書き込みます。
オプションを使ったカスタマイズ
`json.dump`メソッドにはいくつかのオプションがあり、それらを使って出力をカスタマイズすることができます。
indentオプション
with open('data_pretty.json', 'w') as f:
json.dump(data, f, indent=4)
このオプションの解説
`indent=4`とすることで、JSONデータのインデントが4スペースで整形されます。これは読みやすさを重視する場合に有用です。
応用例
複数のPythonオブジェクトを一つのJSONファイルに書き込む
data1 = {'name': 'Alice', 'age': 30}
data2 = {'name': 'Bob', 'age': 40}
with open('multi_data.json', 'w') as f:
json.dump([data1, data2], f, indent=4)
リストや辞書のネスト
data = {
'users': [
{'name': 'Alice', 'age': 30},
{'name': 'Bob', 'age': 40}
]
}
with open('nested_data.json', 'w') as f:
json.dump(data, f, indent=4)
日本語文字列を含むデータの扱い
data = {'name': '太郎', 'age': 30}
with open('japanese_data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
まとめ
この記事で取り上げた`json.dump`メソッドは、PythonオブジェクトをJSONファイルに書き込む際に非常に有用です。オプションで出力を調整したり、複雑なデータ構造を扱うことも可能です。特にデータ分析やWeb開発において、この知識は必須といえるでしょう。
コメント