Python序列化proto中repeated修饰的数据
一、repeated修饰复合数据结构,即message时
1、使用message的add方法初始化新实例
2、分别对新实例中的每个元素赋值;或使用CopyFrom(a)拷贝a中的元素值
1 message TechnologyTreeNode{ 2 optional int32 node_id = 1; 3 optional int32 level = 2; 4 } 5 6 message TechnologyTree { 7 repeated TechnologyTreeNode tree_node_list = 1; 8 } 9 10 tt = TechnologyTree() 11 ttn = tt.tree_node_list.add() 12 13 # 分别赋值 14 ttn.node_id = 2 15 ttn.level = 3 16 17 # CopyFrom 18 tn = TechnologyTreeNode() 19 tn.node_id = 2 20 tn.level = 3 21 ttn.CopyFrom(tn)
二、repeated修饰基础数据类型,如:int等
1、单个元素使用append()追加
2、list使用expend()
message A { repeated int ids = 1; } a = A() a.ids.append(1) l = [1, 2, 3] a.ids.extend(l)
三、删除repeated修饰的数据中元素
del a.ids[index]
or
a.ids.remove(item)
四、清空
del a.ids[:]
or
a.ids.clear()