回答編集履歴

2

追記

2020/10/02 07:20

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -21,3 +21,23 @@
21
21
  ```
22
22
 
23
23
  じゃないかな?
24
+
25
+
26
+
27
+ 追記
28
+
29
+ > [エラー] TypeError:引数は「dict」ではなくバイトのようなオブジェクトまたはASCII文字列である必要があります
30
+
31
+
32
+
33
+ ASCII って0~255のバイト配列で構成されているんだけれども
34
+
35
+ 全部の値が使えるわけじゃない。それでgzipされた文字列を強制的にエンコードしようとしたのが
36
+
37
+ 前回の print(base64.b64encode(text.encode('ascii')))
38
+
39
+
40
+
41
+ ただこれでも不十分だったようなので元からバイナリで読みこむように変更して
42
+
43
+ 読み込んだ値自体はバイナリそのままでエンコーディングしましょうというのが今回の回答。

1

修正

2020/10/02 07:20

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -12,9 +12,11 @@
12
12
 
13
13
 
14
14
 
15
- with gzip.open('event4.gz', mode='rt') as fp:
15
+ with gzip.open('event4.gz', mode='rb') as fp:
16
16
 
17
+ binary = fp.read()
18
+
17
- print(base64.b64encode(text.encode('ascii')))
19
+ print(base64.b64encode(binary))
18
20
 
19
21
  ```
20
22