如何通过后请求传递序列化的二进制数据

时间:2018-12-25 19:24:01

标签: python python-3.x pickle

请考虑使用docker-compose模仿类型在docker volumes请求中与端点进行通信,以在请求正文中传递参数。

要传递给post的参数之一是json类型更准确的json类型数据,可以假设它们来自binary

如何创建有效的bytes并将这些数据传递到端点,然后将pickle.dumps的二进制数据从可能的json返回到{{1 }}数据,然后unpickle返回对象类型本身?

请指定一个简单的示例进行演示

1 个答案:

答案 0 :(得分:0)

您需要以JSON可以使用的文本格式对二进制数据进行编码。对此的标准方法是base64编码,可在python标准库中找到:

编码:

import base64

serialized_data = ... # this is the binary data to send
serialized_data_b64 = base64.b64encode(payload)

解码:

import base64

serialized_data_b64 = ... # this is the received data
serialized_data = base64.b64decode(serialized_data_b64)

如果您发送的数据非常大,则可能需要改用base-85编码,这将使编码后的有效负载略小。但是,它在其他语言中较少受支持。有关更多信息,请参见Python Documentation

base64.b85encodebase64.b85decode用于base-85编解码器