protobuf for python 安装与使用
来源:互联网 发布:美国失业率数据 编辑:程序博客网 时间:2024/04/30 22:07
Protobuf的使用简单来说分为两部分:
1、安装protobuf for python
2、编译并使用*.proto
首先需要protobuf源码,可以去google code上下载,地址:https://code.google.com/p/protobuf/downloads/list
但是因为众所周知的原因一般不 翻*墙*的话是无法下载,本人提供了百度云下载地址:http://pan.baidu.com/s/1mgzGPk8
下载后得到protobuf'源代码,安装步骤如下:
1、编译生成protoc.exe,使用vsprojects文件夹下面的工程protoc工程即可。已编译好的2.5.0版本下载地址:http://pan.baidu.com/s/1mgzGPk8
2、将protoc.exe 拷贝进入源代码文件夹下 src中
3、进入源代码文件夹下python文件夹,cmd执行 python setup.py build
4、cmd执行 python setup.py install
接下来就是如何使用protobuf的问题了,步骤如下:
1、创建测试用proto源文件,如:CustomerInfo.proto,内容如下
package tutorial; message CustomerInfo{ optional string member_id = 1; //会员ID 标识客户在数据库中的id optional float money = 2; //会员金额 } </span>
2、进入源代码文件夹中存放protoc.exe的地方,例如我将proto文件凡在d:/目录下,则在cmd中运行protoc -I=d:/ --python_out=d:/ d:/CustomerInfo.proto
成功后生成 CustomerInfo_pb2.py
3、新建python工程引入该文件,如下:
# coding = utf-8from CustomerInfo_pb2 import CustomerInfoif __name__ == '__main__': # SerializeToString new_obj = CustomerInfo() new_obj.member_id = '100' new_obj.money = 20.0 s_str = new_obj.SerializeToString() print u'Serializ:' print s_str # ParseFromString new_obj2 = CustomerInfo() new_obj2.ParseFromString(s_str) print u'Parse:' print new_obj.member_id print new_obj.money</span>
其中SerializeToString方法为序列化方法,将实例序列化为字符串。ParseFromString为反序列话方法,将字符串还原为实例
只要双方使用一样的CustomerInfo_pb2.py就可以使用获得完全一样的结果。
小结:
Protobuf工具使用稍显复杂,不过相对于json格式来说可以节省一定空间开销。所以在对性能方面需要高要求时,可以使用protobuf替代json方式。
详细官方教程参见:https://developers.google.com/protocol-buffers/docs/tutorials
- protobuf for python 安装与使用
- protobuf安装与使用
- protobuf 安装与使用
- protobuf 安装与使用
- windows下安装protobuf for python
- 【神经网络与深度学习】【Python开发】Caffe配置 windows下怎么安装protobuf for python
- protobuf 的安装与使用
- protobuf安装使用(python版)
- python版protobuf安装
- 安装protobuf Python支持
- python使用protobuf
- python下使用protobuf
- python使用protobuf
- python 如何使用 protobuf
- python中使用protobuf
- protobuf安装与示例
- protobuf 安装和使用
- protobuf安装使用
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- 顺序栈
- Hibernate(二)HQL&SQL参数绑定、投影和分页以及命名查询
- 黑马程序员--oc:面向对象语法
- ruby学习教程
- protobuf for python 安装与使用
- 我经历过的失败产品和项目(四):没有落单的多媒体彩铃媒体服务器
- android开发技巧——仿新版QQ锁屏下弹窗
- PostgreSQL的9.4已经发布
- spring <context:component-scan>标签
- Nexus入门指南(图文)
- 新机安装软件列表
- 公告动态更新原理
- POJ 3667 线段树区间合并