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