安装protobuf
- 使用Home Brew安装Protobuf:
brew install protobuf
- 查看是否安装成功
protoc --version
- 进入文件路径命令行执行
protoc --python_out=./ ./HT_moment_body.proto
- 此时会在当前目录下生成:HT_moment_body_pb2.py
- 执行命令后生成的 pb 文件中并没有方法和类,导致报错;
- 因新版本的 grpc_tools 不直接生成定义了,而是运行中动态生成,所以还是可以正常运行的。
🌰
from proto import HT_moment_body_pb2
from common.configHTTP import myhttp
from common.getJwt import get_authorization
from google.protobuf import json_format
import json
#请求
expose_record =HT_moment_body_pb2.GetExposeRecordRequest()
#请求值赋值
expose_record.userid =10283233
expose_record.filter = 2
expose_record.ostype = 0
expose_record.version =327684
expose_record.area_code =b'CN'
###数据编译为字节流
data = expose_record.SerializeToString()
url = "/v1/moment/expose_record"
get_headers = {
'Authorization': get_authorization(10283233),
'Content-type': 'application/x-protobuf'
}
response = myhttp().main_http("post", url, data=data, headers=get_headers)
#返回
res = HT_moment_body_pb2.GetExposeRecordResponse()
###字节流转对象
res.ParseFromString(response.content)
print(res)
字节传输
- expose_record.area_code =b’CN’
JSON ->protobuf
from google.protobuf import json_format
import json
req={
'userid': 10283233,
'filter': 2,
'ostype': 0,
'version': 327684,
'area_code': "CN"
}
#json->字符串->字节流
expose_record = json_format.Parse(json.dumps(req),HT_moment_body_pb2.GetExposeRecordRequest())
原文地址:http://www.cnblogs.com/QingshanY/p/16886408.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性