in .proto:
message HelloReplyList { repeated string message = 1; }
以下代码工作正常
def SayHelloList(self, request, context):
l = ['a', 'b', 'c']
return helloworld_pb2.HelloReplyList(message=l)
以下代码工作错误: 类型错误: {'a': '1'} 具有类型字典,但应为以下类型之一:字节、Unicode
def SayHelloList(self, request, context):
d = [{'a': '1'}, {'b': '2'}]
return helloworld_pb2.HelloReplyList(message=d)
如果我想使用[{'a':'1'},{'b':'2'}]
. 如何在.proto
中定义?
我不认为protobuf python接受[{'a':'1'},{'b':'2'}]。 {'a':'1'} 可以是 protobuf 中的映射字段,[] 是一个列表。我们不支持重复的地图字段。
如果数据是 {'a':'1', 'b':'2'},那么您可以定义 .proto 文件,如下所示: 消息 HelloReplyList { map map_field = 1; }