Protocol Buffer实践- python 实现

protobuf-python windows安装

Windows下安装protobuf
简单介绍:

Protocol Buffers - Google's data interchange format
===================================================

Copyright 2008 Google Inc.

https://developers.google.com/protocol-buffers/

Overview
--------

Protocol Buffers (a.k.a., protobuf) are Google's language-neutral,
platform-neutral, extensible mechanism for serializing structured data. You
can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/).
  1. 首先要有windows运行环境
    下载如图所示安装包其中 protoc-3.17.3-win64 是需要的编译器 :protoc.exe 配置一下 让其可执行
  2. 安装python库
python setup.py build
python setup.py test
python setup.py install

snap如下
在这里插入图片描述

pip 直接安装

pip install grpcio
pip install grpcio-tools

简单实践

demo proto

say_hi.proto

syntax = "proto2";

package hello_word;

message SayHi {
    required int32 id = 1;
    required string something = 2;
    optional string extra_info = 3;
}

执行命令:

protoc -I . --python_out=.  say_hi.proto

生成文件:
say_hi_pb2.py

进行功能测试:
test.py

# -*- coding: utf-8 -*-
import say_hi_pb2
 
po = say_hi_pb2.SayHi()
po.id = 123
po.something = 'do_something'
po.extra_info = 'extra info'

print(po, po.id)  # 打印 protobuf 结构的内容

out = po.SerializeToString()
print(out)  # 打印 Protobuf 序列字符串
decode = say_hi_pb2.SayHi()
decode.ParseFromString(out)
print (decode.id)
print (decode.something)
print (decode.extra_info)
print(decode) # 打印 解析Protobuf后的内容


输出结果:
输出结果

总结

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值