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