zoukankan      html  css  js  c++  java
  • 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()



  • 相关阅读:
    命令[34]
    命令[33]
    命令[27]
    命令[38]
    命令[19]
    命令[22]
    命令[30]
    命令[37]
    命令[23]
    命令[26]
  • 原文地址:https://www.cnblogs.com/YYRise/p/9380117.html
Copyright © 2011-2022 走看看