PythonでbyteStringkey:valueペアの辞書をStringに変換します
Pythonのバイト文字列は、文字bが前に付いた文字列です。この記事では、バイトコード文字列を含む辞書を、文字列のみを表す通常の辞書に変換する方法を説明します。
デコードとASCIIを使用
Python文字列メソッドdecode()は、エンコード用に登録されたコーデックを使用して文字列をデコードします。デフォルトでは、デフォルトの文字列エンコーディングになります。これを使用して、デコード関数のパラメーターとしてasciiを指定することにより、バイトコード値を通常のasci値に変換します。
例
bstring = {b'day': b'Tue', b'time': b'2 pm', b'subject': b'Graphs'} print(bstring) # Use decode stringA = {y.decode('ascii'): bstring.get(y).decode('ascii') for y in bstring.keys()} # Result print(stringA)のyのbstring.get(y).decode('ascii')
出力
上記のコードを実行すると、次の結果が得られます-
{'subject': 'Graphs', 'day': 'Tue', 'time': '2 pm'} {u'time': u'2 pm', u'day': u'Tue', u'subject': u'Graphs'}
デコードとutf-8を使用
上記と同様のアプローチをとることができますが、今回はutf-8を使用します。キーと値のペアのforループを設計し、各ペアを反復処理して、値をutf-8表現に変換します。
例
bstring = {b'day': b'Tue', b'time': b'2 pm', b'subject': b'Graphs'} print(bstring) # Use decode stringA = {} for key, value in bstring.items(): stringA[key.decode("utf-8")] = value.decode("utf-8") # Result print(stringA)
出力
上記のコードを実行すると、次の結果が得られます-
{'subject': 'Graphs', 'day': 'Tue', 'time': '2 pm'} {u'time': u'2 pm', u'day': u'Tue', u'subject': u'Graphs'}
-
Pythonで文字列を辞書に変換する方法は?
ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、文字列、数値、タプル、リスト、dict、ブール値、およびなしのPythonリテラル構造のみで構成されます。例: >>>import ast >>>x = ast.literal_eval("{'foo' : 'bar', 'hello' : 'world'}") >>
-
辞書の文字列表現をPythonの辞書に変換するにはどうすればよいですか?
ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、次のPythonリテラル構造のみで構成されます:文字列、数値、タプル、リスト、dict、ブール値、およびなし。例: s = "{'baz' : 'lol', 'foo' : 'bar'}" import ast s = ast.literal_eval(s) print s['foo'], s['baz