PYTHON MEBY

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": "山田太郎"}

キーがアルファベット順にソートされていることがわかります。

関連記事