gpt4 book ai didi

python-3.x - 在python中反序列化Protobuf 3 bytearray

转载 作者:行者123 更新时间:2023-12-02 01:11:52 26 4
gpt4 key购买 nike

如何通过字节数组响应以字符串形式读取 Protobuf 消息?

我尝试查找 Protobuf 库。
https://developers.google.com/protocol-buffers/docs/reference/python/google.protobuf.message-pysrc#Message.MergeFrom

当我尝试 mergeFrom 时, mergeFromString 取回响应。我得到低于错误。

类型错误:MergeFrom() 的参数必须是同一类的实例:预期的 GetUpdateResponseMsg 得到了字节。

我尝试了 ParseFromString api 并得到了 None 响应。

我正在尝试将 Protobuf 反序列化回人类可读的格式。

还有什么我可以尝试的吗?

最佳答案

您需要反序列化响应。将类/protobuf 类型与消息一起传入,您应该会得到格式为..的响应。
示例示例是:

from BusinessLayer.py.GetDealUpdateData_pb2 import GetDealUpdateResponseDM
from importlib import import_module
def deserialize(byte_message, proto_type):
module_, class_ = proto_type.rsplit('.', 1)
class_ = getattr(import_module(module_), class_)
rv = class_()
rv.ParseFromString(byte_message)
return rv

print (deserialize(byte_message, 'BusinessLayer.py.GetDealUpdateData_pb2.GetDealUpdateResponseDM'))

byte_message 是您将作为响应收到的消息。

如果您有任何问题,请告诉我。

关于python-3.x - 在python中反序列化Protobuf 3 bytearray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com