当我尝试设置 map<string,Y> dict of X
的元素时
引发 ValueError。
"Direct assignment of submessage not allowed"
我的实验代码是
syntax = "proto3";
message X {
map<string,Y> dict = 1;
}
message Y {
int32 v = 1;
}
和python代码
x = x_pb2.X()
y = x_pb2.Y()
x.data['a'] = y
然后出现错误
Traceback (most recent call last):
File "x.py", line 8, in <module>
x.data['a'] = y
ValueError: Direct assignment of submessage not allowed
我该如何解决这个问题?
最佳答案
我猜这是最佳使用模式
x = x_pb2.X()
x.data['a'].v = 1
另一种选择是使用 CopyFrom
x = x_pb2.X()
y = x_pb2.Y()
y.v=2
x.data['a'].CopyFrom(y)
关于python - protobuf3,python - 如何将元素设置为 map<string,OtherMessage> 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52583468/