【RPC??006】python3体验protobuf魅力
2021/9/11 20:35:04
本文主要是介绍【RPC??006】python3体验protobuf魅力,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
protobuf
- 虚拟环境安装:
- 1:创建一个文件名 hello.proto 里面的代码如下
- 2:根据上面的模板生成python文件,一定要切换到hello.proto文件所在目录下执行
- 3: 写自己的python脚本,体验数据序列化过程
- 自己的一些思考:
虚拟环境安装:
virtualenv,python3.7.1
python -m pip install grpcio # 安装grpc
python -m pip install grpcio-tools # 安装grpc tools
1:创建一个文件名 hello.proto 里面的代码如下
这个文件只是一个模板,会根据这个文件模板生成python文件
注意这里并不是python代码,是protobuf语法。
syntax = "proto3"; message HelloRequest { string name = 1; }
2:根据上面的模板生成python文件,一定要切换到hello.proto文件所在目录下执行
don’t forget into virtualenv
python -m grpc_tools.protoc --python_out=. --grpc_python_out=. -I. order.proto
执行这个命令之后会生成一下两个文件
3: 写自己的python脚本,体验数据序列化过程
创建一个文件如 python_protobuf.py 增加代码如下
from protobuf import hello_pb2 # 序列化 request = hello_pb2.HelloRequest() #创建实例 request.name = "book" #初始化实例并赋值 res_str = request.SerializeToString() # 把"book"转换成二进制字符串 print(res_str) # 反序列化 request2 = hello_pb2.HelloRequest() res_str2 = request2.ParseFromString(res_str) # 再把二进制转换成字符串 print(res_str2)
输出结果如下
自己的一些思考:
1:用protobuf和json对数据序列化(编码)后的数据有什么区别?
输出结果如下
protobuf压缩比高出一倍多,可以看出protobuf压缩效果更好。若有收获,就点个赞吧常玉_Book08-28 11:4900
这篇关于【RPC??006】python3体验protobuf魅力的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南