Python 2.7:从buffer对象中读取二进制数据并进行base64编码

Python 2.7: Read binary data from buffer object and base64 encode it

我有一个第 3 方方法,它有一个 returns 缓冲区类型的对象:

<read-write buffer ptr 0x02CED2E0, size 2556 at 0x02CED2C0>

这应该是二进制数据。如何从缓冲区中读取数据,然后对其进行 base64 编码?

对于一种数据类型,没有指定的二进制格式来表示它。这取决于你想要什么,

例如,你可以尝试pickle.dump,然后用base64编码这个bin数据吗? 或 JSON

可能是一个带有缓冲区接口的对象。另见 buffer()

如果只需要编码,不做任何事前处理,则见base64 module:

import base64
b64encoded_str = base64.b64encode(your_buffer_object)

这应该没问题。

如果由于某种原因这不起作用,那么 str(在 Python 2.7 中)将 buffer 对象作为输入并转换为 str 对象,因此:

import base64
b64encoded_str = base64.b64encode(str(your_buffer_object))

甚至更简单,尽管它可能会在最后引入换行符 '\n':

b64encoded_str = str(your_buffer_object).encode('base64')