Pythonの辞書(dict)を文字列に変換する方法|JSONによるシリアライズと復元の基本
辞書を文字列化するならJSONがベスト
Pythonの辞書(dict)を文字列として保存・送信したい場合、最も推奨される形式はJSONです。標準ライブラリのjsonモジュールを使えば、追加インストール不要で簡単に相互変換が行えます。
json.dumps(dict)… 辞書 → 文字列(シリアライズ)json.loads(string)… 文字列 → 辞書(デシリアライズ)
基本的な使い方
例えば、次のように辞書を文字列へ変換し、再び元の辞書へ戻すことができます。
>>> import json
>>> d = {'id': 15, 'name': 'John'}
>>> x = json.dumps(d)
>>> print(x)
{"id": 15, "name": "John"}
>>> print(json.loads(x))
{'id': 15, 'name': 'John'}
dumps()で文字列化したデータは、loads()を通すことで完全に元の辞書構造へ復元されます。これが最もシンプルで高速な方法です。
覚えておくと便利なオプション
日本語を含む辞書を扱う場合
デフォルトでは非ASCII文字がUnicodeエスケープされます。日本語をそのまま出力したいときはensure_ascii=Falseを指定しましょう。
>>> d = {'name': '太郎'}
>>> json.dumps(d)
'{"name": "\\u592a\\u90ce"}'
>>> json.dumps(d, ensure_ascii=False)
'{"name": "太郎"}'整形して読みやすく出力する
indent引数を指定すると、インデント付きの整形されたJSONが出力され、ログや設定ファイルの確認に役立ちます。
>>> print(json.dumps(d, indent=4))
{
"id": 15,
"name": "John"
}
まとめ
Pythonの辞書をシリアライズ・デシリアライズするには、json.dumps()とjson.loads()の組み合わせが最も簡単かつ確実です。設定ファイルの保存やAPIとのデータ通信など、実務でも頻繁に使われるテクニックなので、ぜひマスターしておきましょう。
-
Pythonで文字列をJSONに変換する方法|json.loads()の使い方を解説
PythonでJSON文字列を辞書(dict)に変換する基本Pythonでは、標準ライブラリの json モジュールを使うことで、JSON形式の文字列を簡単に扱うことができます。文字列として渡されたJSONデータをPythonの辞書型に変換するには、json.loads() メソッドを使用します。json.loads() は、有効なJSON文字列を受け取り、それを解析して辞書オブジェクトを返します。返された辞書には、すべての要素にキーを使ってアクセスできます。json.loads()の使用例>>> import json >>> s = {success:
-
【Python】辞書形式の文字列をdict型に変換する2つの安全な方法
はじめにPythonでは、文字列として表現された辞書(例:{foo: bar})を、実際の辞書(dict型)オブジェクトに変換したい場面がよくあります。この記事では、代表的な2つの変換方法である ast.literal_eval() と json.loads() の使い方を解説します。方法1: ast.literal_eval() を使うast.literal_eval() を使うと、文字列をPythonの式として安全に評価できます。この関数は、式ノードまたはPython式を含む文字列を評価しますが、許可されているのは文字列・数値・タプル・リスト・辞書・ブール値・Noneといったリテラル構造の