我正在尝试转换消息对象
message = [id: "ff90608b-bb1f-463b-ad26-e0027e67e826"
byte_content: "PK\003\004\024\000\000\000\010\000\360\206\322R\007AMb\201\...00\000\310\031\000\000\000\000"
file_type: "application/pdf"
file_name: "cumulative-essentials-visit.pdf"
]
借
from google.protobuf.json_format import MessageToDict
dict_obj = MessageToDict(message_obj)
发送到json,但出现错误
message_descriptor = message.DESCRIPTOR
AttributeError: 'google.protobuf.pyext._message.RepeatedCompositeCo' object has no attribute 'DESCRIPTOR'
有什么想法吗? 谢谢
下面是一个工作示例,同时重现了上述异常
步骤1:todolist.proto包含以下内容的文件:
步骤2:通过运行以下命令,从todolist.proto文件生成特定于python的代码:
这将在当前目录中生成一个文件todolist_pb2.py
步骤3:创建一个python项目并将复制到dolist_pb2.py中
步骤4:创建包含以下内容的python模块proto_test.py:
步骤5:运行proto_test.py模块,您可以看到失败的行为和成功的行为
因此,您似乎不是在转换实际消息,而是在转换消息/响应中的列表类型字段。因此,请尝试转换整个消息,然后检索您感兴趣的字段
如果有帮助,请告诉我
注意:您需要确保在您的计算机中安装了protoc compiler,以便将proto文件编译为步骤2中提到的python特定代码。 安装说明如下所示: MacOS/Linux
Windows
相关问题 更多 >
编程相关推荐