下面是proto描述文件的定义
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}
在python中利用google.protobuf序列化数据进行通讯的时候,一定会遇到repeated的数据如何去创建
在这里我给大家分享一下:
import addressbook_pb2
person = addressbook_pb2.Person()
person.id = 1234
person.name = "John Doe"
person.email = "jdoe@example.com"
phone = person.phone.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME
person.no_such_field = 1
person.id = "1234"
请注意加红的一行代码,这就是重点,如果想再添加一个的话phone2 = person.phone.add()即可,然后给phone2赋值。
分享到:
相关推荐
大数据场景下序列化和反序列化技术,谷歌提供技术 protobuf-jetbrains-plugin-0.13.0.zip
Python调用序列化数据工具Protocol Buffers——protobuf https://xercis.blog.csdn.net/article/details/109204030
Unity 中使用Protobuf进行序列化和反序列化的Demo
netty protobuf序列化对象 推送 android客户端,压缩包中有两个工程。服务,客户端。
v1.1 更新内容。1. 增加错误信息。2. 修改数组为proto3储存方式。@wlp。
实现protobuf和json互相转换python3源码,protobuf是Google开源的新传输协议,压缩效率和传输效率比XML和json都要高
附带proto的调用命令跟测试的proto文档
protobuf常用序列化和反序列化API,相关教程:http://blog.csdn.net/tennysonsky/article/details/73920767
protobuf序列化JAVA使用的JAR包,版本:3.15。直接下载,不用编译,这玩意儿编译还是很麻烦。
C#中使用二进制和ProtoBuf分别进行序列化、反序列化、压缩、解压缩对比测试示例源码
Hive 对 Protobuf 序列化文件读取
Google Protobuf基于Qt开发序列化与反序列化用QUdpSocket传输并显示。实例。 具体可查看了解:https://blog.csdn.net/automoblie0/article/details/101363526
NULL 博文链接:https://luoshi0801.iteye.com/blog/1828035
protocolbuffer是google 的一种数据交换的格式,它独立于语言,独立于平台。 google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。
在Unity5中Protobuf的序列化和反序列化,解决了因Android和IOS平台的不同而不能解析的问题。
【Android Protobuf 序列化】Protobuf 性能测试 ( fastjson 序列化与反序列化 | gson 序列化与反序列化 | 三种序列化与反序列化性能对比 ) https://hanshuliang.blog.csdn.net/article/details/116199062 【Android ...
python protobuf环境配置,及其简单使用,软件都已经打包上传
自己实现的protobuf 压缩类,并能序列化反序列化
ProtoBuf的介绍以及在Java中使用protobuf将对象进行序列化与反序列化示例代码.rar
python-3.7.4、protobuf-3.5.1离线安装完整资源。