本文主要讲述如何使用Python发送protobuf数据。

安装protobuf

tar zxvf protobuf-2.6..tar.gz
cd protobuf-2.6.
./configure
make
make install

安装成功。

// 查看protoc版本
protoc --version

python安装protobuf

cd protobuf-2.6./python
python setup.py build
python setup.py install

环境搭建完毕,下面给个demo。

创建my_bidding.proto

package tutorial;

message Person {
required string name = ;
optional int32 age = ;
repeated BankCard bankcard = ;
message BankCard {
required string id = ;
}
optional RealEstate estate = ;
message RealEstate {
required string address = ;
optional int32 value = ;
}
optional bool isSingle = ;
optional SexualOrientation orientation = ;
enum SexualOrientation {
ManOnly = ;
WomanOnly = ;
BiSexual = ;
}
}

编译proto文件

protoc -I=. --python_out=. ./my_bidding.proto

编译成功,会产生my_bidding_pb2.py。

编写Python脚本

# python2
# coding = utf-8 import my_bidding_pb2
import httplib person = my_bidding_pb2.Person()
person.name = 'logan'
person.age = 25
person.isSingle = False
person.orientation = 3 bankcard1 = person.bankcard.add()
bankcard1.id = '' bankcard2 = person.bankcard.add()
bankcard2.id = '' real_estate = person.estate
real_estate.address = 'beijing'
real_estate.value = 1000 print person data = person.SerializeToString() CONTENT_TYPE = "application/octet-stream"
CONTENT_TYPE_HEADER = "Content-type" conn = httplib.HTTPConnection('sever_host', 'server_port')
conn.request('POST', 'server_path', data,
{CONTENT_TYPE_HEADER: CONTENT_TYPE})
response = conn.getresponse() print response
print response.status
print response.read()

python post protobuf的更多相关文章

  1. python读写protobuf

    0.     前期准备 官方protobuf定义 https://code.google.com/p/protobuf/   python使用指南 https://developers.google. ...

  2. python 处理protobuf协议

    背景:需要用django基于python3模拟一个http接口,请求是post方式,body是protobuf string,返回也是protobuf string 设计:django获取pb str ...

  3. Python使用Protobuf&&如何赋值&&如何正反序列化

    前言 使用protobuf主要是两个步骤,序列化和反序列化. 关于Proto有哪些数据类型,然后如何编写,此处就不赘述了,百度一下有很多. 此文主要是总结,python使用protobuf的过程,如何 ...

  4. python 处理protobuf 接口常见错误

    python 处理protobuf 接口常见错误 1.问题 : Assignment not allowed to repeated field '> http://www.coin163.co ...

  5. python通过protobuf实现rpc

    由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行g ...

  6. python版protobuf 安装

    转自:http://www.tuicool.com/articles/VfQfM3 1. 下载protobuf源代码(当前最新版本为:2.5.0) #cd /opt #wget https://pro ...

  7. python 安装protobuf

    安装准备:python和protoc(编译proto到各个语言) 下载protobuf源代码(各种语言实现):https://github.com/google/protobuf  1.到Python ...

  8. mac环境使用python处理protobuf

    安装 brew install protobuf 然后再安装protobuf需要的依赖 brew install autoconf automake libtool 验证是否安装成功 protoc – ...

  9. protobuf python api

    摘要: python中一切都可以看作类.那么如何查看每个类的API.使用ipython python  protobuf 的函数在message中定义 此处所有的api说明:https://devel ...

随机推荐

  1. python初学(三)

    1.以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取,并按照排名先后顺序输出不同年份的前10位大学信息,要求对输出结 ...

  2. Qt发送一次信号触发两次槽函数的原因

    在手动为控件编写槽函数的时候,如果将槽函数名字按如下格式编辑,则不需要再次进行手动关联 void on_pushButton_1_clicked(); void on_radioButton_clic ...

  3. Julia控制流

  4. Python列表介绍,最常用的Python数据类型

    文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:数据杂论 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获 ...

  5. B. 复读机的力量

    我们规定一个人是复读机当且仅当他说的每一句话都是复读前一个人说的话. 我们规定一个人是复读机当且仅当他说的每一句话都是复读前一个人说的话. 我们规定一个人是复读机当且仅当他说的每一句话都是复读前一个人 ...

  6. 如何将Python项目发布到PyPI

    The Python Package Index (PyPI) is a repository of software for the Python programming language. 如何打 ...

  7. 分析PE

    PE文件是Windows平台下可执行文件标准格式,浓缩了微软工程师的设计精华,历经40年依旧保持着原有的设计.分析PE文件对于研究Windows操作系统有着重要的实践意义,对于逆向分析有着重要的指导作 ...

  8. 非常简单的string驻留池,你对它真的了解吗

    昨天看群里在讨论C#中的string驻留池,炒的火热,几轮下来理论一堆堆,但是在证据提供上都比较尴尬.虽然这东西很基础,但比较好的回答也不是那么容易,这篇我就以我能力范围之内跟大家分享一下 一:无处不 ...

  9. SweetAlert - 演示6种不同的提示框效果

    http://www.sucaihuo.com/js/190.html http://www.cnblogs.com/beiz/p/5238124.html

  10. centos7源码安装Apache及Tomcat

    源码安装Apache (1) 一.通过 https://apr.apache.org/  下载 APR 和 APR-util 通过 http://httpd.apache.org/download.c ...