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

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'}

  1. Pythonで文字列を辞書に変換する方法は?

    ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、文字列、数値、タプル、リスト、dict、ブール値、およびなしのPythonリテラル構造のみで構成されます。例:  >>>import ast >>>x = ast.literal_eval("{'foo' : 'bar', 'hello' : 'world'}") >>

  2. 辞書の文字列表現を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