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

Protocol buffer in Python: How to set value to the nested element

我在尝试使用 Python 设置 Protobuf 文件中嵌套元素的值时遇到问题。我有以下 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"

通过打印原始 class print(raw) 我只得到:

version_number: "1"

Innerlayer的值好像没有设置。我究竟做错了什么 ?有人可以帮我吗?

InnerLayer 是 class 名称而不是参数名称所以执行以下操作应该有效

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