电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python使用protobuf序列化和反序列化的實現

瀏覽:6日期:2022-06-19 10:53:12
protobuf介紹

protobuf是一種二進制的序列化格式,相對于json來說體積更小,傳輸更快。

安裝protobuf

安裝protobuf的目的主要用來將proto文件編譯成python、c、Java可調用的接口。

# 如果gcc版本較低,需要升級gccwget https://main.qcloudimg.com/raw/d7810aaf8b3073fbbc9d4049c21532aa/protobuf-2.6.1.tar.gztar -zxvf protobuf-2.6.1.tar.gz -C /usr/local/ && cd /usr/local/protobuf-2.6.1./configure make && make install# 可以在/etc/profile或者~/.bash_profile末尾設置永久有效export PATH=$PATH:/usr/local/protobuf-2.6.1/bin

使用下面命令查看是否安裝成功。

[root@CodeOnTheRoad ~]# protoc --versionlibprotoc 2.6.1構建python接口

創建cls.proto文件,定義序列化結構:

package cls;message Log{ message Content {required string key = 1; // 每組字段的 keyrequired string value = 2; // 每組字段的 value } required int64 time = 1; // 時間戳,UNIX時間格式 repeated Content contents = 2; // 一條日志里的多個kv組合}message LogTag{ required string key = 1; required string value = 2;}message LogGroup{ repeated Log logs= 1; // 多條日志合成的日志數組 optional string contextFlow = 2; // 目前暫無效用 optional string filename = 3; // 日志文件名 optional string source = 4; // 日志來源,一般使用機器IP repeated LogTag logTags = 5;}message LogGroupList{ repeated LogGroup logGroupList = 1; // 日志組列表}

只用下面命令將proto文件轉換為python可調用的接口。

protoc cls.proto --python_out=./

執行完后,在此目錄下生成cls_pb2.py。

序列化

import cls_pb2 as clsimport time# 構建protoBuf日志內容LogLogGroupList = cls.LogGroupList()LogGroup = LogLogGroupList.logGroupList.add()LogGroup.contextFlow = '1'LogGroup.filename = 'python.log'LogGroup.source = 'localhost'LogTag = LogGroup.logTags.add()LogTag.key = 'key'LogTag.value = 'value'Log = LogGroup.logs.add()Log.time = int(round(time.time() * 1000000))Content = Log.contents.add()Content.key = 'Hello'Content.value = 'World'print(LogLogGroupList)# 序列化data = LogLogGroupList.SerializeToString()print(data)

其實就是講一個protobuf的結構文本序列化成了二進制的形式。

反序列化

反序列化就是將二進制轉換成protobuf結構。

# 反序列化LogLogGroupList = cls.LogGroupList()LogLogGroupList.ParseFromString(data)print(LogLogGroupList)

運行結果

上面序列化和反序列化代碼結果運行如下:

Python使用protobuf序列化和反序列化的實現

到此這篇關于Python使用protobuf序列化和反序列化的實現的文章就介紹到這了,更多相關Python 序列化和反序列化內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 礼堂椅厂家|佛山市艺典家具有限公司 | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | 管形母线,全绝缘铜管母线厂家-山东佰特电气科技有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 |