質問: fp.read() print(base64.b64encode(text.encode())) ``` これの逆のことがしたいです。 リンク内容
回答: Base64で文字列をエンコードするのになぜ 'b'が必要なのですか? ``` #json→gzip with gzip.open("event4.gz", mode="wt") as outputfile: json.dump(d, outputfile) with gzip.open('event4.gz', mode='rb') as fp: binary = fp.read() print(base64.b64encode(binary)) ``` じゃないかな? 追記 > > [エラー] TypeError:引数は「dict」ではなくバイトのようなオブジェクトまたはASCII文字列である必要があります > > > ASCII って0~255のバイト配列で構成されているんだけれども 全部の値が使えるわけじゃない。それでgzipされた文字列を強制的にエンコードしようとしたのが 前回の print(base64.b64encode(text.encode('ascii'))) ただこれでも不十分だったようなので元からバイナリで読みこむように変更して 読み込んだ値自体はバイナリそのままでエンコーディングしましょうというのが今回の回答。