Pythonで辞書をJSONに変換(json.dumps)
この記事ではPythonのjson.dumps()メソッドを使用して辞書をJSON文字列に変換する方法を解説します。サンプルコード付きで、様々なオプションの使い方も説明します。
目次
json.dumps()の基本的な使い方
Pythonの`json.dumps()`メソッドは、Pythonの辞書オブジェクトをJSON形式の文字列に変換します。
import json
data = {'name': '山田太郎', 'age': 30, 'city': '東京'}
json_string = json.dumps(data)
print(json_string) # 出力: {"name": "山田太郎", "age": 30, "city": "東京"}
このように、辞書をJSON文字列に変換することができます。日本語文字列も問題なく変換されます。
インデントの指定
`indent`パラメータを使用して、JSON文字列のインデントを指定できます。可読性を高めるために使用します。
import json
data = {'name': '山田太郎', 'age': 30, 'city': '東京'}
json_string = json.dumps(data, indent=2)
print(json_string) #出力:
{
"name": "山田太郎",
"age": 30,
"city": "東京"
}
`indent=2`とすることで、2スペースのインデントが適用されます。
ensure_asciiオプション
`ensure_ascii=False`を指定すると、日本語などのUnicode文字をそのままJSON文字列に出力できます。デフォルトは`True`で、ASCII文字のみが出力されます。
import json
data = {'name': '山田太郎', 'age': 30, 'city': '東京'}
json_string = json.dumps(data, ensure_ascii=False)
print(json_string) # 出力: {"name": "山田太郎", "age": 30, "city": "東京"}
この例では、ensure_ascii=Falseを指定することで日本語が正しく出力されています。
separatorsオプション
`separators`パラメータで、キーと値、要素間の区切り文字をカスタマイズできます。
import json
data = {'name': '山田太郎', 'age': 30, 'city': '東京'}
json_string = json.dumps(data, separators=(',', ':'))
print(json_string) # 出力: {"name":"山田太郎","age":30,"city":"東京"}
この例では、キーと値の間のスペースと、要素間のカンマ後のスペースを削除しました。
sort_keysオプション
`sort_keys=True`を指定すると、JSON文字列のキーがアルファベット順にソートされます。
import json
data = {'age': 30, 'name': '山田太郎', 'city': '東京'}
json_string = json.dumps(data, sort_keys=True)
print(json_string) # 出力: {"age": 30, "city": "東京", "name": "山田太郎"}
キーがアルファベット順にソートされていることがわかります。
関連記事
- PythonでJSONを辞書に変換(json.loads)
- Pythonで辞書を作成(dict, 辞書内包表記)
- Pythonで辞書に要素を追加・更新(update, 辞書[key] = value)
- Pythonで辞書のキー・値を取得(keys, values, items)
- Pythonで辞書をループ処理(for key in dict, for key, value in dict.items())
- Pythonで辞書から要素を削除(pop, popitem, del)
- Pythonで辞書をコピー(copy, deepcopy)
- Pythonで辞書を結合(update, {**dict1, **dict2} (Python 3.5以降))
- Pythonで辞書をフィルタリング(辞書内包表記)
- Pythonで辞書をソート(sorted)