Python
 Computer >> コンピューター >  >> プログラミング >> Python

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文字がそのまま出力されます。
  1. Pythonで文字列をJSONに変換する方法|json.loads()の使い方を解説

    PythonでJSON文字列を辞書(dict)に変換する基本Pythonでは、標準ライブラリの json モジュールを使うことで、JSON形式の文字列を簡単に扱うことができます。文字列として渡されたJSONデータをPythonの辞書型に変換するには、json.loads() メソッドを使用します。json.loads() は、有効なJSON文字列を受け取り、それを解析して辞書オブジェクトを返します。返された辞書には、すべての要素にキーを使ってアクセスできます。json.loads()の使用例>>> import json >>> s = {success:

  2. 【Python】辞書形式の文字列をdict型に変換する2つの安全な方法

    はじめにPythonでは、文字列として表現された辞書(例:{foo: bar})を、実際の辞書(dict型)オブジェクトに変換したい場面がよくあります。この記事では、代表的な2つの変換方法である ast.literal_eval() と json.loads() の使い方を解説します。方法1: ast.literal_eval() を使うast.literal_eval() を使うと、文字列をPythonの式として安全に評価できます。この関数は、式ノードまたはPython式を含む文字列を評価しますが、許可されているのは文字列・数値・タプル・リスト・辞書・ブール値・Noneといったリテラル構造の