为什么protobuf / python在MessageToDict函数中对字节字段进行base64编码

时间:2020-08-18 10:51:34

标签: python protocol-buffers

当我使用json_format.MessageToDict将protobuf消息转换为python dict时。字节类型字段将成为base64编码。

我找到了源代码: https://chromium.googlesource.com/external/github.com/google/protobuf/+/HEAD/python/google/protobuf/json_format.py#289

但是为什么protobuf那样做?

1 个答案:

答案 0 :(得分:0)

json无法以字节为单位保留数据。为了将字节放入json中,您需要一些东西来对字节进行编码。 base64是执行此操作的常用方法。

名为json_format.MessageToDict,它将字节转换为base64编码的字符串给您。

类似的问题here