Python で辞書を文字列に変換する

Samyak Jain 2023年1月30日
  1. Python で辞書を文字列に変換するには json モジュールを使う
  2. ast ライブラリの str() および literal_eval() 関数を使用して、辞書を文字列に変換し、Python に戻する
  3. Python で pickle モジュールを使って辞書を文字列に変換して戻す
Python で辞書を文字列に変換する

Python の辞書は、キーと値のペアに格納されたデータ値の順序付けられたコレクションです。中括弧内に要素を配置し、コンマで区切ることで作成できます。Python の文字列は、Unicode 文字のシーケンスです。文字を一重引用符または二重引用符で囲むことによって作成できます。

このチュートリアルでは、辞書を文字列に変換して Python に戻す方法について説明します。

Python で辞書を文字列に変換するには json モジュールを使う

jsonJavaScript Object Notation の頭文字です。このモジュールは、プレーンテキストのみで出力を生成します。また、クロスプラットフォームとクロスバージョンもサポートしています。

例えば、

import json

dict = {"Hello": 60}
s = json.dumps(dict)
print(s)
d = json.loads(s)
print(d)

出力:

{"Hello": 60}
{'Hello': 60}

関数 json.dumps() は、パラメーターとして渡された json オブジェクトからデータを抽出し、文字列の形式で返します。関数 json.loads() は、パラメータとして文字列を受け取り、json オブジェクトを返します。

ast ライブラリの str() および literal_eval() 関数を使用して、辞書を文字列に変換し、Python に戻する

この方法は、辞書の長さが長すぎない場合に使用できます。Python の str() メソッドは、辞書をその文字列表現に変換するために使用されます。ast ライブラリの literal_eval() は、Python で文字列を辞書に変換するために使用されます。

例えば、

import ast

dict = {"Hello": 60}
str(dict)
ast.literal_eval(str(dict))

出力:

"{'Hello': 60}"
{'Hello': 60}   

Python で pickle モジュールを使って辞書を文字列に変換して戻す

pickle モジュールの dumps() 関数は、Python で辞書をバイトストリームに変換するために使用されます。loads() 関数は逆のことを行います。つまり、バイトストリームを Python の辞書に変換するために使用されます。

例えば、

import pickle

dict = {"Hello": 60, "World": 100}
s = pickle.dumps(dict)
print(s)
d = pickle.loads(s)
print(d)

出力:

b'\x80\x04\x95\x19\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x05Hello\x94K<\x8c\x05World\x94Kdu.'
{'Hello': 60, 'World': 100}

関連記事 - Python String

関連記事 - Python Dictionary