python post protobuf
本文主要讲述如何使用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的更多相关文章
- python读写protobuf
0. 前期准备 官方protobuf定义 https://code.google.com/p/protobuf/ python使用指南 https://developers.google. ...
- python 处理protobuf协议
背景:需要用django基于python3模拟一个http接口,请求是post方式,body是protobuf string,返回也是protobuf string 设计:django获取pb str ...
- Python使用Protobuf&&如何赋值&&如何正反序列化
前言 使用protobuf主要是两个步骤,序列化和反序列化. 关于Proto有哪些数据类型,然后如何编写,此处就不赘述了,百度一下有很多. 此文主要是总结,python使用protobuf的过程,如何 ...
- python 处理protobuf 接口常见错误
python 处理protobuf 接口常见错误 1.问题 : Assignment not allowed to repeated field '> http://www.coin163.co ...
- python通过protobuf实现rpc
由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行g ...
- python版protobuf 安装
转自:http://www.tuicool.com/articles/VfQfM3 1. 下载protobuf源代码(当前最新版本为:2.5.0) #cd /opt #wget https://pro ...
- python 安装protobuf
安装准备:python和protoc(编译proto到各个语言) 下载protobuf源代码(各种语言实现):https://github.com/google/protobuf 1.到Python ...
- mac环境使用python处理protobuf
安装 brew install protobuf 然后再安装protobuf需要的依赖 brew install autoconf automake libtool 验证是否安装成功 protoc – ...
- protobuf python api
摘要: python中一切都可以看作类.那么如何查看每个类的API.使用ipython python protobuf 的函数在message中定义 此处所有的api说明:https://devel ...
随机推荐
- Python设计模式(7)-建造者模式
# coding=utf-8 class Report: def create_head(self): pass def create_body(self): pass class year_Repo ...
- BaseRuntimeException自定义业务异常类实现
public class BaseRuntimeException extends RuntimeException { private final int code; public BaseRunt ...
- Go语言 可变参数
最近与同事讨论时,提到Go语言的可变参数,之前没有总结过相关知识点,今天我们介绍一下Go语言的可变参数. 可变参数(Variable Parameters):参数数量可变的函数称之为可变参数函数,主要 ...
- java 泛型实例详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) 2013-02-04 19:49:49| 分类: JAVA | 标签:java |举报|字号 订阅 下载LOFTER客户端 JDK1.5 令我们期 ...
- pandas basic cheatsheet
"胖的要死"是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. 有多大?这篇 ...
- lua 逻辑运算 and, or, not
这边并非说lua低级,为了方便区分才这么写的. 高级语言中的逻辑运算符是&&,||,! a&&b : 当a和b都为真, 结果返回为真,当a或者b有一个为假,结果返回为假 ...
- linux常用命令--打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1 ...
- 一个可能是世界上最全的 API 接口集合库开源项目
对于程序员来说,为自己的程序选择一些合适的API并不是那么简单,有时候还会把你搞得够呛,今天猿妹要和大家分享一个开源项目,这个项目汇集了各种开发的api,涵盖了音乐.新闻.书籍.日历等,无论你是从事W ...
- 关于phpstorm、idea、gogland等等ide全家桶设置
2017-08-29 16:30:55 Preferences => IDE Settings => Editor => Code Completion => Autopopu ...
- Caused by:java.lang.ClassNotFoundException:org.apache.hadoop.yarn.util.Apps
错误原因 缺少hadoop-yarn.jar包. 导入jar包就好了~-~