Python | json.dumps()とjson.loads()でjsonのエンコードとデーコード

2023-02-26Python リスト,Python 関数,Python

Python | json.dumps()とjson.loads()でjsonのエンコードとデーコード

このページはPythonでjsonのエンコードとデーコードを実行する基本的な書き方を紹介しています。

jsonライブラリのインポート

Pythonでjsonのエンコードとデーコードなどの変換処理を扱うのに必要な標準ライブラリの「json」をインポートしておきます。

import json

json.dumps()で辞書をjsonにエンコード

json.dumps()を使って辞書をjsonにエンコードするサンプルコードです。

import json

# 辞書
dict_data = {"fruits": {"apple": "300", "orange": "100", "pine": None}}

# 辞書をjsonにエンコード
json_data = json.dumps(dict_data)

print(json_data)

# {"fruits": {"orange": "100", "apple": "300", "pine": null}}

Pythonで使うNoneがjsonにエンコードされた際にnullに変わっています。

利用可能なオプション引数

json.dumps()で利用可能なオプション引数には「sort_keys」「indent(インデント)」があります。

オプション引数デフォルト説明
sort_keysFalseキーの並び替え設定、Trueだと作成時のまま?
indent0インデントの付与、4くらいが見やすい
ensure_asciiFalse
separators

目視することのあるファイルに保存する場合はインデントを付けておくと見やすい。

オプション引数を指定

import json

# 辞書
dict_data = {"fruits": {"apple": "300", "orange": "100", "pine": None}}

# 辞書をjsonにエンコード
json_data = json.dumps(
	dict_data, sort_keys=True, indent=4, ensure_ascii=False, ensure_ascii=False
)

print(json_data)

# {
#     "fruits": {
#         "apple": "300",
#         "orange": "100",
#         "pine": null
#     }
# }

※ブラウザで確認している場合は、ページのソースコード表示にてインデントの付き方が確認できます。

json.loads()でjsonを辞書にエンコード

json.loads()を使ってjsonを辞書型にエンコードするサンプルコードです。

import json

# json
json_data = '{"fruits": {"orange": "100", "apple": "300", "pine": null}}'

# jsonを辞書にデコード
dict_data = json.loads(json_data)

print(dict_data)

# {'fruits': {'orange': '100', 'apple': '300', 'pine': None}}

エンコードとは逆にnullはNoneに変換されています。