Python中的协议缓冲区:如何设置嵌套元素的值

2024-10-02 20:31:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试用Python设置Protobuf文件中嵌套元素的值时遇到问题。我有以下协议:

syntax = "proto3";

option java_multiple_files = true;

message OuterLayer{
    InnerLayer sim_card_data = 1;
    string version_number = 3;

    message InnerLayer{
        string iccid = 1;
        string imei = 2;
    }

在Python中,我使用以下方法设置值:

raw = OuterLayer()
raw.version_number = "1.0"
raw.InnerLayer.iccid="1"
raw.InnerLayer.imei="2"

通过打印原始类打印(raw),我只得到:

version_number: "1"

内层的值似乎没有设置。我做错了什么?有人能帮我吗


Tags: 文件元素协议numbermessagestringrawversion
1条回答
网友
1楼 · 发布于 2024-10-02 20:31:06

InnerLayer是类名而不是参数名,因此执行以下操作应该可以

raw = OuterLayer()
raw.version_number = "1.0"
raw.sim_card_data = InnerLayer()
raw.sim_card_data.iccid = "1"
raw.sim_card_data.imei = "2"

相关问题 更多 >