【RPC❄️006】python3体验protobuf魅力

虚拟环境安装:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值