对于二维数组的定义,需要在服务端进行解析,例如,输入数据样例为

a = [[1,2],[3,4],[5,6],[7,8]]

则需要解析之后传入,代码如下:

points = _____pb2.Response()
for i in range(len(edge)):
    d = points.values.add()
    d.edges.extend(edge[i])

然后将points.values作为传入参数即可。

4. 定义二维列表解析及输出

message Res {
      message Result{
           repeated string bayes_network = 1;
      repeated Result result = 1;

在客户端进行解析输出二维列表,

a = []
for one in response.result:
    b = []
    for i in one.bayes_network:
        b.append(i)
    a.append(b)
proto协议定义数据类型使用proto3语法1. 定义简单列表message Response{ repeated string a = 1; repeated int32 b =2;}2. 定义字典类型(简单)message Result{ map<string, int32> values = 1;}3. 定义二维列表(数组)输入message Response{ message Edge{ repeated int32
proto3 使用 定义一个消息类型 先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了: syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; 文件的第一行指定了
This guide describes how to use the protocol buffer language to structure your protocol buffer data, including .proto #le syntax and how to generate data access classes from your .proto #les. It covers the proto3 version of the protocol buffers language: for information on the older proto2 syntax, see the Proto2 Language Guide (https://developers.google.com/protocol-buffers/docs/proto).
return max; //编译中max可以换成别的定义,但要注意你弟你定义的变量一定要初始化,通常,我们遇到加号时,定义为0,遇到乘号时,定义为1,具体原因就不做解释,学过数学的应该都能理解。 int32 result_per_page = 3; syntax = “proto3”:表示这是使用protobuf3的语法,不加这句默认使用protobuf2的语言.两者还是有不少差异的. 其中,`MyMessage` 中的 `my_array` 字段是一个 `MyArrayType` 类型的数组,每个 `MyArrayType` 对象里面又包了一个 `int32` 类型的数组 `my_array_element`。 在 Lua 中,可以使用以下的代码来创建一个二维数组: ```lua local my_array = {} my_array[1] = {1, 2, 3} my_array[2] = {4, 5, 6} 这个二维数组中包了两个一维数组,分别是 `{1, 2, 3}` 和 `{4, 5, 6}`。可以使用以下的代码来遍历这个二维数组: ```lua for i = 1, #my_array do for j = 1, #my_array[i] do print(my_array[i][j]) 这个代码会依次输出数组中的每个元素。