Python 2.7:从缓冲区对象读取二进制数据,base64对其进行编码

时间:2016-01-13 11:15:17

标签: python base64 buffer

我有第三方方法,其返回对象类型为buffer:

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

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

2 个答案:

答案 0 :(得分:2)

可能它是一个带缓冲接口的对象。另请参阅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')

答案 1 :(得分:0)

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

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