小编Fra*_* AK的帖子

为什么 python protobuf json_format.Parse 会抛出 TypeError?

我正在尝试将 protobuf 序列化为 JSON。我制作了一个简单的原型文件,其中包含以下消息:

syntax = "proto3";
message Bool {
    bool data = 1;
}

message BoolArray {
    repeated Bool bools = 1;
}
Run Code Online (Sandbox Code Playgroud)

然后,我运行一些基本代码来构建消息,推送到 Json,然后将其读回:

pb_bool_array = pb_bool.BoolArray()
b = pb_bool_array.bools.add()
b.data = True
bools_as_json = MessageToJson( pb_bool_array )

Parse(bools_as_json, proto.bool_pb2.BoolArray )
Run Code Online (Sandbox Code Playgroud)

但 Parse 函数会抛出TypeError以下消息:

google.protobuf.json_format.ParseError:无法解析 bools 字段:必须使用 BoolArray 实例作为第一个参数调用未绑定方法 ClearField() (改为使用 str 实例)。

我跟踪了 Parse 函数,这个错误在 Google 代码的第 519 行触发json_format。为什么会出现这个TypeError呢?我是否在我的原型规范中遗漏了某些内容和/或滥用了 python API?

谢谢!

python protocol-buffers

5
推荐指数
1
解决办法
6331
查看次数

标签 统计

protocol-buffers ×1

python ×1