python protobuf序列化repeated运用
下面是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 = "" 
	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赋值
python protobuf序列化repeated运用的更多相关文章
- 常见的序列化框架及Protobuf序列化原理
		
原文链接:https://www.jianshu.com/p/657fbf347934 https://www.cnblogs.com/javazhiyin/p/11375553.html https ...
 - 透过byte数组简单分析Java序列化、Kryo、ProtoBuf序列化
		
序列化在高性能网络编程.分布式系统开发中是举足轻重的之前有用过Java序列化.ProtocolBuffer等,在这篇文章这里中简单分析序列化后的byte数组观察各种序列化的差异与性能,这里主要分析Ja ...
 - google protobuf序列化原理解析 (PHP示例)
		
一.简介 Protocol Buffers是谷歌定义的一种跨语言.跨平台.可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小, ...
 - python pickle 序列化类
		
python pickle 序列化类 # coding:utf-8 try: import cPickle as pickle except ImportError: import pickle cl ...
 - python的序列化和反序列化以及json
		
python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数 ...
 - python json序列化与反序列化操作
		
python json序列化与反序列化操作 # dumps() dict-->str 序列化 # loads() str---dict 反序列化 result1 = json.dumps({'a ...
 - Python:序列化 pickle JSON
		
序列化 在程序运行的过程中,所有的变量都储存在内存中,例如定义一个dict d=dict(name='Bob',age=20,score=88) 可以随时修改变量,比如把name修改为'Bill',但 ...
 - Java数据通讯中使用Googgle Protobuf 序列化与反序列化
		
概念 1.什么是protocol buffer ProtocolBuffer是用于结构化数据串行化的灵活.高效.自动的方法,有如XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代 ...
 - Google protobuf序列化以及反序列化
		
序列化的目的是将对象持久化到硬盘或者用于网络传输.java也提供了序列化技术,非常简单,只要实现Serializable接口即可.如下: public class commonService impl ...
 
随机推荐
- Enlish E-mail approve  skills
			
for example 2Per our T/C, pls send me the schematic of 035342 & mark the deviation for C3 so I c ...
 - UITableViewCell的高度与UILabel自适应
			
UITableViewCell内部只放了一个UILabel,Cell的高度随着UILabel内容的高度变化而变化,可重写UITableView的委托方法动态调整高度,还要设置UILabel.numbe ...
 - 在python中的使用
			
操作步骤: 1. 连接数据库,生成数据库连接对象 conn = pymongo.MongoClient('localhost',27017) 2. 选择要操作的数据库,生成数据库对象 (__setit ...
 - HihoCoder - 1867: GCD (莫比乌斯容斥)
			
Sample Input 6 1 6 2 5 3 4 Sample Output 10 You are given a {1, 2, ..., n}-permutation a[1], a[2], . ...
 - Linux系统如何制作U盘启动盘更换系统
			
进入这个网站balenaEtcher,直接下载可接
 - Mac OS X 10.9.2 配置 jdk1.8.0_05 环境变量
			
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gcvdsvb/article/details/24543543 首先到 oracle 站点下载 ss ...
 - PHP写的手机端网站,可以打包成app吗,怎么打包?
			
8:13:36 沐歌-重庆 2018/1/19 8:13:36 PHP写的手机端网站,可以打包成app吗,怎么打包 风太大-淮安 2018/1/19 8:14:58 变色龙 沐歌-重庆 一般用什么打包 ...
 - Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡
			
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...
 - 【转】每天一个linux命令(36):diff 命令
			
原文网址:http://www.cnblogs.com/peida/archive/2012/12/12/2814048.html diff 命令是 linux上非常重要的工具,用于比较文件的内容,特 ...
 - memcache 和 memcached 区别
			
区别用一句话表达:Memcached (字母d可以理解为daemon)是一个服务(运行在服务器上的程序,监听某个端口),Memcache 是 一套访问Memcached的api. memcache客户 ...