首页 > 其他分享 >Protobu协议

Protobu协议

时间:2024-03-01 13:00:28浏览次数:39  
标签:协议 protobuf proto python Person -- 安装 Protobu

1. protobuf

  • protobuf是Google公司提出的一种更轻便高效的结构化数据存储格式,常用于结构化数据的序列化,具有语言无关、平台无关、可扩展性特性,常用于通讯协议、服务端数据交换场景。

1.1 Win安装

  • 下载地址:https://github.com/protocolbuffers/protobuf/releases
  • 添加环境变量
  • 终端打印版本:protoc --version

1.2 Mac安装

brew install protobuf@3    # @3 标识安装 protobuf 的3版本,默认安装2版本。目前2本版有问题。 安装3.20 及以上的版本。
  • 如果电脑未安装brew,则先安装:
>>>/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
>>>brew --version
  • 添加环境变量
PATH="/usr/local/opt/[email protected]/bin:${PATH}"
export PATH

 

2. 使用

创建xxx.proto文件

syntax = "proto3";

package aa;

message Person{
string name = 1;
int32 age = 2;
}
message Message{
string method = 1;
string poyload = 2;
}

根据命令生成python可调用文件

protoc --python_out=. xx.proto
xx.proto:proto文件
--python_out=.:生成的python可调用文件,等号后边是存放路径,.代表当前路径

3. python调用proto文件

  • 安装:pip install protobuf


from hello_pb2 import Message,Person    # 引入 Message,Person

p = Person() # 创建Person对象
p.name = 'abc'
p.age = 11

# 转换数据
info = p.SerializeToString()
print(info)

# 接收数据后转换
obj = Person()
obj.ParseFromString(info)
print(obj.name)
print(obj.age)


 

标签:协议,protobuf,proto,python,Person,--,安装,Protobu
From: https://www.cnblogs.com/smile1/p/18046744

相关文章

  • 低功耗全功能蓝牙5.1与2.4GHz私有协议的双模无线连接芯片OM6621FB 无线键鼠应用领域
    便携易操作且连接稳定的键鼠设备市场前景广阔。从有线发展为无线,高性能低功耗芯片在无线键鼠领域的应用,为开发者提供了优异的射频性能、强抗干扰及迅速稳定安全的连接,极大程度上提升了用户的办公灵活性和效率。为什么无线键鼠那么方便和好用,为何现在还有那么多人使用有线键鼠?今天......
  • 以太网协议号
    以太网协议号typenamedesrfc1ICMPInternetControlMessage[RFC792]2IGMPInternetGroupManagement[RFC1112]3GGPGateway-to-Gateway[RFC823]4IPIPinIP(encapsulation)[RFC2003]5STStream[RFC1190,RFC1819]6TCPTransmissionCont......
  • 浅析TSN网络之车载以太网协议测试
    TSN是一项从视频音频数据领域延伸至工业领域、汽车领域的技术。TSN最初来源于音视频领域的应用需求,当时该技术被称为AVB,由于针对音视频网络需要较高的带宽和最大限度的实时,借助AVB能较好的传输高质量音视频。2012年,AVB任务组在其章程中扩大了时间确定性以太网的应用需求和适用范......
  • 学习之Http协议
    3.1HTTP简介HTTP超文本传输协议(HTTP-HyperTexttransferprotocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过十几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通......
  • 缓存一致性协议MESI
    从Cache说起如今的多核计算机往往包含多个CPU核心,其中每个CPU有自己独立的CacheL1、CacheL2,同时多个CPU共享主存。由于CPU获取指令数据的速度远快于主存,所以通过一级缓存、二级缓存等等来降低CPU从主存获取数据的频率,提升性能。CPU不会每需要一次数据就从主......
  • USB协议相关
    1.包(Packet)       包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在USB总线上的传输以包为单位,包只能在帧内传输。2.帧(Frame)     高速USB总线的帧周期为125us,全速以及低速USB总线的帧周期为1ms。帧的起始由一......
  • PC端web通过自定义协议唤起应用
    写注册表调用WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\Software\Classes\test]@="URL:TestProtocol"[HKEY_CURRENT_USER\Software\Classes\test\shell][HKEY_CURRENT_USER\Software\Classes\test\shell\open][HKEY_CURRENT_USER\......
  • 嵌入式通信总线协议和通信电平
    1.搞清楚同步和异步:同步:异步:2.通信电平分类:TTL电平:逻辑1:2.4v-5v,逻辑0:0v-0.5vCMOS电平:232电平:逻辑1的电平为:-15v到-5v,逻辑0的电平为:+5v到+15v485电平:使用差分电平3.常用的通信总线协议:UART:IIC:SP......
  • ProtoBuffer-nanopb介绍
    目录一、需求二、环境三、相关概念3.1protocolbuffer介绍3.2nanopb(支持C语言)3.3proto文件四、proto基本语法4.1proto文件的定义4.2字段规则4.3字段类型4.4字段编号4.5proto语法4.6进阶语法4.6.1message嵌套4.6.2enum关键字4.6.3oneof关键字五、nanopb分析5.1nanopb......
  • CAN协议通信,帧格式
    CAN协议通信「建议收藏」 简介CAN(ControllerAreaNetWork)是局域网络控制器的简称;在汽车诊断行业,它充当了一系列汽车设备制造的标准,其中包括ECU(electronicControlUnit)的设计及制造;因此,在与汽车ECU通信的过程中,我们必须遵循这个标准,就是我们常说的CAN协议;本章节......