Pythonで辞書を文字列にシリアライズし、再び辞書へ戻す方法
Pythonで辞書(dict)を文字列として保存したい場合や、その文字列を後から再び辞書として読み込みたい場合は、標準ライブラリのjsonモジュールが最も信頼できる選択肢です。JSONは軽量なデータ交換フォーマットであり、Pythonの辞書構造との相性が非常に良いため、データのシリアライズ・デシリアライズに広く使われています。
1. 辞書を文字列に変換する(json.dumps)
json.dumps() 関数を使うと、辞書オブジェクトをJSON形式の文字列に変換できます。
コード例
import json
my_dict = {
'foo': 42,
'bar': {
'baz': "Hello",
'poo': 124.2
}
}
my_json = json.dumps(my_dict)
print(my_json)
出力結果
'{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'
このように、ネストされた辞書も含めてすべて文字列化されます。
2. 文字列を辞書に戻す(json.loads)
逆に、json.loads() 関数を使えば、JSON形式の文字列を元の辞書オブジェクトへ復元できます。
コード例
import json
my_str = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'
my_dict = json.loads(my_str)
print(my_dict['bar']['baz'])
出力結果
Hello
復元されたデータは通常の辞書として扱えるため、キーを指定して値を取り出すことができます。
補足ポイント
- dumps / loads:文字列 ⇔ 辞書の相互変換に使用します。
- dump / load:ファイルに対して直接読み書きしたい場合は、こちらの関数を使用します。
- JSONでは辞書のキーは文字列である必要があるため、数値などをキーにしている場合は注意が必要です。
ensure_ascii=Falseオプションを指定すると、日本語などの非ASCII文字がそのまま出力されます。
-
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といったリテラル構造の