2016-08-30 6 views
0

今日私は次の問題を抱えていました。私は逆の目的で、より良いそれを説明することができます。私たちは、次のbase64での変数があるとし、文字列と基数64バイトは全く同じリテラル文字で

b64_var = b'aGVsbG8gd29ybGQ=' 

は、私たちがしたいこと、それは、Pythonの文字列オブジェクトにそれを復号化するためにはないこと、すなわち、

base64.b64decode(b64_var).decode('utf-8') 
>>> 'hello world' 
を想像してみて

代わりに、文字列リテラルで同等の文字、

repr(b64_var)[1:] 
>>> 'aGVsbG8gd29ybGQ=' 

[OK]を、今では私の質問です。私はstuckedだ

'aGVsbG8gd29ybGQ=' -> b'aGVsbG8gd29ybGQ=' (base64-obj) ??? 

、ちょうど反対を実行する関数を構築したい、私は...それを行う方法を任意の提案を知らないのか?前もって感謝します。

+1

'b'aGVsbG8gd29ybGQ = ''は ''ではなく、[' bytes' ](https://docs.python.org/3/library/functions.html#bytes)オブジェクト(または 'bytesarray')です。 – martineau

答えて

0

これはあなたがしたいことですか?

b64_var = b'aGVsbG8gd29ybGQ=' 

print(repr(b64_var))   # b'aGVsbG8gd29ybGQ=' 
print(repr(b64_var)[1:])  # 'aGVsbG8gd29ybGQ=' 
print('b' + repr(b64_var)[1:]) # b'aGVsbG8gd29ybGQ=' 
+0

お試しいただきありがとうございます@martineau。不幸にも私の解決すべき問題は、逆のことです。しかし、あなたは私に重要な手がかりを与えました: 'b64_var'は、'バイトクラス 'であり、base64モジュールからエクスポートされた特別なものではありません。私は解決策を投稿するつもりです。ありがとう。 –

0

[OK]をクリックして問題が見つかりました。期待したほど簡単でした。

私は私がやってみたかった、実際に何を明確にしようとするつもりですまず、

str_var = 'aGVsbG8gd29ybGQ='    # str_var: string 
b64_var = fun_str_2_b64samechars(str_var) # b64_var: bytes (b64) 

コンソール、

b64_var 
>>>b'aGVsbG8gd29ybGQ=' 

私の目標は、そのfun_str_2_b64samechars機能を構築する方法を推測することでした。そして、ここでは、私はそれがある限り、私は(私はタイトルを編集したため、これに)base64でモジュールを採用してbase64でエンコードされたクラスのいくつかの種類だと思ったので、おそらくそれがあった正確bytes(str_var,'utf-8')

bytes('aGVsbG8gd29ybGQ=','utf-8') 
>>>b'aGVsbG8gd29ybGQ=' 

です。助けてくれてありがとう、それは誰かのために役立つことを願っています:)

関連する問題