az *_*rnd 7 python protocol-buffers
我正在尝试从加密的 Base64 字符串中获取 JSON 数据。我已经创建了我的原型文件,如下所示
syntax = "proto2";
message ArtifactList {
repeated Artifact artifacts = 1;
}
message Artifact {
required string id = 1;
required uint64 type_id = 2;
required string uri = 3;
}
Run Code Online (Sandbox Code Playgroud)
之后,我使用 proto 命令生成了 python 文件。我正在尝试解密 Base64 字符串,如下所示。
import message_pb2
import base64
data = base64.b64decode("AAAAAA8KDQgTEBUgBCjln62lxS6AAAAAD2dycGMtc3RhdHVzOjANCg==")
s = str(data)
message_pb2.ArtifactList.ParseFromString(s)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误。
Traceback (most recent call last):
File "app.py", line 7, in <module>
message_pb2.ArtifactList.ParseFromString(s)
TypeError: descriptor 'ParseFromString' requires a 'google.protobuf.pyext._message.CMessage' object but received a 'str'
Run Code Online (Sandbox Code Playgroud)
我是 protobuf 的新手。我找不到解决此问题的解决方案。
有人可以帮助解决这个问题吗?
提前致谢。
小智 1
ParseFromString 是 protobuf Message实例上的一个方法。
尝试:
message = message_pb2.ArtifactList()
message.ParseFromString(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5890 次 |
| 最近记录: |