我有这样的.proto
文件
syntax = "proto3";
import "google/protobuf/any.proto";
message Request {
google.protobuf.Any request_parameters = 1;
}
如何创建Request
对象并填充其字段?我试过这个:
import ma_pb2
from google.protobuf.any_pb2 import Any
parameters = {"a": 1, "b": 2}
Request = ma_pb2.Request()
some_any = Any()
some_any.CopyFrom(parameters)
Request.request_parameters = some_any
但我有个错误:
TypeError: Parameter to CopyFrom() must be instance of same class: expected google.protobuf.Any got dict.
更新
以下@Kevin I的提示将新消息添加到.proto
文件:
message Small {
string a = 1;
}
现在代码如下:
Request = ma_pb2.Request()
small = ma_pb2.Small()
small.a = "1"
some_any = Any()
some_any.Pack(small)
Request.request_parameters = small
但在最后一次作业中,我犯了一个错误:
Request.request_parameters = small
AttributeError: Assignment not allowed to field "request_parameters" in protocol message object.
我做错了什么?
目前没有回答
相关问题 更多 >
编程相关推荐