【发布时间】:2020-12-26 22:39:26
【问题描述】:
我正在尝试从加密的 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;
}
之后,我使用 proto 命令生成了 python 文件。我正在尝试解密 base64 字符串,如下所示。
import message_pb2
import base64
data = base64.b64decode("AAAAAA8KDQgTEBUgBCjln62lxS6AAAAAD2dycGMtc3RhdHVzOjANCg==")
s = str(data)
message_pb2.ArtifactList.ParseFromString(s)
但我收到以下错误。
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'
我是 protobuf 的新手。我找不到解决此问题的解决方案。
谁能帮忙解决这个问题?
提前致谢。
【问题讨论】:
-
你为什么用我的回答删除了另一个问题?
-
@jps 我问了一个问题,这是错误的。这就是我删除它的原因。但你的答案是正确的。
-
你对这个问题有什么想法吗?
-
@jps 现在我收到此错误。你有什么想法吗?
-
我收到此错误:-
google.protobuf.message.DecodeError: Wrong wire type in tag.。谁能帮忙