в отчаянии после двух дней гугления. Я получаю сообщение с pika, пришедшее от rabbitmq. Я знаю, что это base64, а content_encoding — gzip. У меня получилось закодировать тело байтов в utf-8. Теперь мне все равно нужно его как-то распаковать. Вот код на данный момент:
1 def callback(channel, method, properties, body):
2 if properties.content_encoding == 'gzip':
3
4 decoded_body = base64.b64encode(bytes(str(body), 'utf-8'))
5 #eliminating the leading 'b
6 decoded_body = decoded_body.decode()
7
8 #this snippet is just copied from another solution
9 buf = io.StringIO(decoded_body)
10 f = gzip.GzipFile(fileobj=buf)
11 decompressed_body = f.read()
12 print(decompressed_body)
В строке 11 появляется следующее сообщение об ошибке.
return self._buffer[read:] + \
TypeError: can't concat str to bytes
Очевидно, что в файле gzip есть \, который мне нужно преобразовать в b\. Но я не знаю как. Я вообще на правильном пути или можно решить проще?
Большое спасибо за твою помощь!
Here is the payload of the message when opening it in rabbitmq: AFN3oPUfiwgAAAAAAAQAhU89T8MwEP0ryGJrHJ3t2mo8AqqK+BhIqGC8JKc0UuKUxBmqqv+di4pYGFhOenfv495ZvNA0YUOv2JPw4n77ke4Ix1gSRpGIPY1T OwS+qFQzLtqe8oj9kTcatJJgpDaFWnvrPOg0g40Ca1agPADz30P7NdPjA9OzUpFzTktnMyfXWNYSyVmZmUpXCg2ylhX5MI/V8srTcPgc5tCkGzAgTZrnMn+W AFYttALHhqLwYe66RLwRp0xxybkuflrdDfVJ+LO4jafjn3rJDUO24rnDUHf/h/5Kt+MSGCo2FwD+2vZy+QYahuynTgEAAA==
Вот что я получаю при печати тела без кодировки: b\x00Sw\xa0\xf5\x1f\x8b\x08\x00\x00\x00\x00\x00\x04\x00\x85O=O\xc30\x10\ xfd+\xc8bk\x1c\x9d\xed\xdaj‹\x02\xaa\x8a\xf8\x18H\xa8\xbc$\xa74R\xe2\x94\xc4\x19\xaa\xaa\xff\x9d\x8b\x8aX\x18XNzw\xef\xe3\xdeY\xbc\xd04aC\xaf\xd8\x93\xf0\xe2~\xfb\x91\xee\x08\xc7X\x12F\x91\x88=\x8dS;\x04\xbe\xa8T3.\xda\x9e\xf2\x88\xfd\x917\x1a\xb4\x92
\xa46\x85Z{\xeb‹\xe84\x83\x8d\x02kV\xa0‹\x00\xf3\xdfC\ xfb5\xd3\xe3\x03\xd3\xb3R\x91sNKg3'\xd7X\xd6\x12\xc9Y\x99\x99JW\n\r\xb2\x96\x15\xf90\x8f\xd5\xf2\xca\xd3p\xf8 \x1c\xe6\xd0\xa4\x1b0 M\x9a\xe72\x7f\x96\x00V-\xb4\x02\xc7\x86\xa2\xf0a\xee\xbaD\xbc\x11\xa7Lq\xc9\xb9.~ Z\xdd\r\xf5I\xf8\xb3\xb8\x8d\xa7\xe3\x9fz\xc9\rC\xb6\xe2\xb9\xc3Pw\xff\x87\xfeJ\xb7\xe3\x12\x18*6\ x17\x00\xfe\xda\xf6r\xf9\x06\x1a\x86\xec\xa7N\x01\x00\x00