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 edges = 1;
}
repested Edge values = 1;
}
对于二维数组的定义,需要在服务端进行解析,例如,输入数据样例为
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)