广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Google Protocol Buff
  • 234
分享到

Google Protocol Buff

GoogleProtocolBuff 2023-01-31 05:01:46 234人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

跨语言通信方案的比较—Thrift、Protobuf和AvroGoogle Protobuf 3版本介绍Google Protocol Buffer 简单介绍python+protobuf 在Python中使用protocol buffe



跨语言通信方案的比较—Thrift、Protobuf和Avro

Google Protobuf 3版本介绍

Google Protocol Buffer 简单介绍

python+protobuf 在Python中使用protocol buffer

Protobuf3语言指南

Protobuf协议的Java应用例子





GitHub项目地址:Protocol Buffers - Google's data interchange fORMat




下载到本地



解压后重命名文件夹如下【也可以保持原有的文件夹名不动】







百度网盘:protoc-3.5.1-win32.zip

下载解压后,将文件夹bin下面的exe执行程序拷贝到上一步的protobuff目录任意文件夹下




比如放在src目录下





配置系统环境变量 【Path】





启动CMD,输入protoc,验证配置是否成功





我们可以看到编译器的一些参数,其支持输出的语言类型包括c++C#,Python,Java等







Protocol Buffers是一个更灵活、高效、自动化的解决方案。它通过一个.proto文件描述我们想要的数据结构


比如:





syntax = "proto3";
message Person {  
  int32  id    = 1 ;  //message体内的字段序号从1开始往下排  
  string name  = 2 ;  
} 



上述定义了一个消息体,名称是Person,编译后等同于Python的模块、Java的类、C++的头和源文件,其中有两个字段,一个是32位的id,一个是字符串name


关于proto的字段类型有哪些,可以参考:Protocol Buffer 语法(syntax)






切换到最开始我们下载的protocol的目录下,找到python文件夹,进去,依次执行


python setup.py build

python setup.py test

python setup.py install



执行前目录结构:





执行后:








将person.proto文件放到任意目录下,最好是python的工作目录下,比如我的放在D盘的proto目录下





有了proto文件,我们需要用protoc.exe工具将其编译成Python语言可以识别的Person模块【py】


编译命令:  protoc -I=输入目录 --python_out=python模块的输出目录 空格 proto文件的绝对路径


打开CMD窗口,由于protoc.exe的环境变量已配置,所以比着上面的模子在窗口中写:


protoc -I=D:/proto --python_out=D:/proto D:/proto/person.proto




不报错就OK,随后,我们可以看到同目录下多了一个文件出来





别小看person.proto这个文件,这个文件可是跨语言的二进制协议文件,也就是我们只需要定义通信的message体,即可实现C++、Java、Python、jsPHP等语言平台之间的通信,而且这种传输效率很高,后续我会针对Python和Java这两种语言实现基于这种传输协议的WEB Restful接口的调用


话不多说,我们在当前目录下,新建一个demo模块,并引入模块person_pb2.py如下





随后我们可以从这个模块中拿出一个person的对象,并很嗨皮的给其附上对应的属性值,如下






我们看一下person_pb2.py这个模块中的属性字段怎么定义的






最后,我们执行下,打印一下person这个对象的信息如下






--结束END--

本文标题: Google Protocol Buff

本文链接: https://www.lsjlt.com/news/189010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Google Protocol Buff
    跨语言通信方案的比较—Thrift、Protobuf和AvroGoogle Protobuf 3版本介绍Google Protocol Buffer 简单介绍python+protobuf 在python中使用protocol buffe...
    99+
    2023-01-31
    Google Protocol Buff
  • Google Authenticator
    小生博客:http://xsboke.blog.51cto.com -------谢谢您的参考,如有疑问,欢迎交流 一、 原理详解(点击图片然后放大查看) 二、 验证1、下载Google谷...
    99+
    2023-01-31
    Google Authenticator
  • mysql入坑之:No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
    出错原因:mysql驱动和url填写错误         因为mysql驱动和url内容可以向下兼容,但是向上不能拓展。       不建议在不验证服务器身份的情况下建立SSL连接。       如果未设置显式选项,则必须默认建立SSL连接...
    99+
    2023-09-17
    mysql
  • Google发布官方WordPress插件:Google Publisher Plugin
    官方介绍: 1,通过插件可以创建adsense广告位。 2,可以直接通过工具在网管中心验证网站。 之前站长DavidYin有过测试: 当点击Manage Ads按钮后,这个插件会连接你的Google Account,或...
    99+
    2022-06-12
    WordPress插件 GooglePublisherPlugin
  • Protocol Buffer的使用(p
    1.需要安装Protocol Buffer 直接:apt-get install protobuf-compiler 安装完毕后,进入解压目录的python目录,执行python setup.py install;安装python的pro...
    99+
    2023-01-31
    Protocol Buffer
  • Swift协议Protocol介绍
    目录协议(Protocol)协议中的属性static、classmutatinginitinit、init、init!协议的继承协议组合CaseIterableCustomStrin...
    99+
    2022-11-13
  • 2020伊始,电动车又给自己刷了一遍谎言buff
    一场绝大多数公共交通停摆的全国封城行动,加上众多长途奔袭、外地求援的故事,想必让不少人开始思考添置私家车的重要性了。恰逢此时,关于电动车的舆论鼓吹又开始崛起了。前不久“硅谷钢铁侠”马斯克在采访中,就再次发出“警告”,认为汽油车的残余价值将在...
    99+
    2023-06-06
  • Google Maps JSAPI V3
    在V3中,做了不少改进,下面对将做简单扼要地介绍。 V3的特性:     1. 不再需要API Key     2. 指定sensor传感器参数,检测到用户当前位置     3. 针对移动设备(IPhone设备和Android系统)的开发 ...
    99+
    2023-01-31
    Maps Google JSAPI
  • golang 安装google
    Go语言(Golang)是一种编程语言,由Google开发和推广。它具有简单易学、高效、安全等特点,在近年来已经得到了广泛应用和越来越多的关注,尤其是在Web应用程序开发领域。为了使用Go语言进行编程,您需要先安装Golang的运行环境,以...
    99+
    2023-05-16
  • Golang Protocol Buffer案例详解
    Golang Protocol Buffer教程 本文介绍如何在Go应用中利用Protocol Buffer数据格式。主要包括什么是Protocol Buffer数据格式,其超越传统...
    99+
    2022-11-12
  • 在Python中使用protocol b
    本教程提供了一个Python程序员使用protocol buffers的基本的入门教程。通过创建一个简单的示例应用程序,它向您展示了如何 *在一个.proto文件中定义Message的格式。 *使用protocol buffer c...
    99+
    2023-01-31
    Python protocol
  • NTP(Network Time Protocol)协议详解
    一、NTP的基本概念: NTP(Network Time Protocol)------网络时间协议-----应用层协议,用来在分布式时间服务器和客户端之间进行时间同步。 二、采用NTP的目的: 是对...
    99+
    2023-09-10
    网络 服务器 运维 NTP time protocol
  • redis通信协议protocol介绍
    redis的ping pong登录redis cli客户端后, 输入ping, 服务器会返回pong, 来表示连接状况是完好的, 也表示了服务器大体上是正常运转的.其中的第一行是我用docker 启动的客户...
    99+
    2022-10-18
  • google maps js v3 ap
    原文地址 前面我们学习了地图和标记的创建。那么今天我们来学习怎样在地图上显示一个窗口(infowindow) infowindow构造函数为:InfoWindow(opts:InfoWindowOptions)。InfoWindowOp...
    99+
    2023-01-31
    maps google js
  • python 实现google auth
    1.背景google auth 作为二次认证,大多场景下都使用在ssh 登录下,而且在ssh 的场景下使用,搭建相对比较简单,本文将介绍google auth 使用在应用平台的二次认证,如:单点登录,网站登录等平台,增加平台的安全性认证。...
    99+
    2023-01-31
    python google auth
  • python 调用Google Tran
    调用Google 翻译API进行翻译 #!/usr/bin/python #coding: UTF-8 import sys reload(sys) sys.setdefaultencoding('utf8') from ...
    99+
    2023-01-31
    python Google Tran
  • Python 写的 Google Map
    GoogleMap的切片地址改变了,以下内容已成历史:)   我们最近的遥感实习要做野外调绘,没想到老师给的图竟然比 Google Map 上的图还要旧,想想干脆就把 Google Map 上的图下载下来参考一下。 主要代码是这里面的:...
    99+
    2023-01-31
    Python Google Map
  • google云服务器
    云服务器可以为用户提供高速、可靠、安全的数据存储和处理服务。在数据处理方面,云服务器可以实现高度并行处理,可以在不同的服务器之间同时处理数据,大大提高了数据处理的效率。同时,云服务器还支持海量数据存储和备份,可以帮助用户轻松应对数据灾备和数...
    99+
    2023-10-28
    服务器 google
  • Google Enjarify:可代替
    Enjarify 是一个将Dalvik字节码转化为等价的Java字节码,然后可以用一系列的Java分析工具去分析Android应用。之前我们一直使用Dex2jar来完成这个工作,不过Dex2jar已经算是一个非常老的工具咯。Dex2jar...
    99+
    2023-01-31
    Google Enjarify
  • location中assign与protocol如何使用
    本篇内容主要讲解“location中assign与protocol如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“location中assign与prot...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作