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

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とのデータ通信など、実務でも頻繁に使われるテクニックなので、ぜひマスターしておきましょう。

  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といったリテラル構造の