[英]Protocol buffer in Python: How to set value to the nested element
i'm having problem while trying to set the value of the nested element in Protobuf file with Python.我在尝试使用 Python 设置 Protobuf 文件中嵌套元素的值时遇到问题。 I have the following 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;
}
In Python, i set the value by using:在 Python 中,我使用以下方法设置值:
raw = OuterLayer()
raw.version_number = "1.0"
raw.InnerLayer.iccid="1"
raw.InnerLayer.imei="2"
By printing the raw class print(raw) i got only:通过打印原始类 print(raw) 我只得到:
version_number: "1"
The values of the Innerlayer seems not to be set.内层的值似乎没有设置。 What am I doing wrong ?我究竟做错了什么 ? Can anybody help me ?有谁能够帮助我 ?
InnerLayer
is the class name not the parameter name so doing the following should work 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"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.