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

Python中的协议缓冲区:如何设置嵌套元素的值,python,protocol-buffers,Python,Protocol Buffers,我在尝试用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

我在尝试用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"

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

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"