代码之家  ›  专栏  ›  技术社区  ›  ibz

协议缓冲区中的字典

  •  21
  • ibz  · 技术社区  · 15 年前

    有没有什么方法可以使用协议缓冲区序列化字典,或者如果需要的话,我必须使用Thrift?

    3 回复  |  直到 15 年前
        1
  •  37
  •   JesperE    15 年前

    人们通常把字典作为键值对的列表写下来,然后在另一端重建字典。

    message Pair {
       optional string key = 1;
       optional string value = 2;
    }
    
    message Dictionary {
       repeated Pair pairs = 1;
    }
    
        2
  •  35
  •   Flassari    9 年前

    对于未来的答案寻求者, ProtoBuf now supports Maps 本地:

    message MapMessage
    {
        map<string, string> MyMap = 1;
    }
    
        3
  •  0
  •   Zheng Xu    10 年前

    你可以检查 ProtoText 包裹。

    假设要序列化dict person_dict 到预先定义的 PersonBuf protobuf对象定义于 personbuf_pb2 模块。

    在这种情况下,要使用ProtoText,

    import ProtoText
    from personbuf_pb2 import PersonBuf
    
    obj = PersonBuf()
    obj.update(person_dict)
    
    推荐文章