🐍 Python
json.dumps() でPythonオブジェクトをJSON文字列に変換する
dumps()は「dump string」の略で、辞書やリストなどのPythonオブジェクトを、API送信やファイル保存に使えるJSON形式の文字列に変換します。
json.dumps(obj) # objをJSON形式の文字列に変換して返す
import json
data = {"name": "Alice", "age": 30, "active": True}
s = json.dumps(data)
print(s)
# {"name": "Alice", "age": 30, "active": true}
print(type(s))
#
# 入れ子になった辞書・リストも再帰的に変換される
import json
nested = {"user": {"name": "Bob"}, "tags": ["a", "b", "c"]}
print(json.dumps(nested))
# {"user": {"name": "Bob"}, "tags": ["a", "b", "c"]}
# 日本語などの非ASCII文字はデフォルトでエスケープされる
import json
print(json.dumps({"name": "田中"}))
# {"name": "\u7530\u4e2d"} ← 「田中」がデフォルトで\uXXXX形式にエスケープされた
print(json.dumps(None))
# null
よく使う引数(詳細は各ページ参照)
indent- 指定した幅でインデント整形する。詳しくは整形出力のページ
ensure_ascii- 非ASCII文字をエスケープするかどうか。詳しくはensure_asciiのページ
default- 標準で変換できない型(datetime等)の変換方法を指定する。詳しくはカスタムエンコーダのページ
💡 AIコードレビュー観点:JSONの真偽値・nullはPythonと綴りが違う
PythonからJSON文字列を見るとTrue/False/Noneがtrue/false/nullという小文字表記に変わっていることに気付きます。AIが生成したコードで、変換後のJSON文字列に対して文字列検索や正規表現で"True"を探しているようなコードがあれば、実際には"true"で出力されているため一致せずバグになります。