【发布时间】:2018-08-11 23:40:49
【问题描述】:
我们正在尝试将 gRPC protobuf 消息最终转换为 json 格式的对象,以便在 python 中进行处理。 从服务器以序列化格式发送的数据约为 35MB,大约有 15K 条记录。但是当我们将 protobuf 消息转换为字符串(使用 MessageToString)时,它大约为 135 MB,而当我们将 protobuf 消息转换为 JSON 字符串(使用 MessageToJson)时,它大约为 140MB。但是每个转换所需的时间约为 5 分钟。它不会增加任何价值,因为我们需要花费大量时间在客户端转换数据。
我们遗漏的任何想法、建议或警告都会有所帮助。谢谢。
【问题讨论】:
-
为什么不跳过 JSON 转换呢? Python 支持 protobuf:developers.google.com/protocol-buffers/docs/pythontutorial
-
@Blender:谢谢!我们有一个在客户端使用的流式 gRPC api,一旦接收到数据,它将使用 python(pandas) 进行处理,以便以特定格式为消费者创建文件。正在传递的数据是嵌套的,大约有 15-20k 条记录。这就是我们试图获取 json 中的数据进行处理的地方。希望这不会使水变得浑浊,这还不是! :)
-
通过仅选择反序列化数据时需要的字段来解决问题,而不是反序列化从服务器返回的所有数据。
标签: python json protocol-buffers grpc