Google protobuf在python中的应用研究

简介: Google protobuf在python中的应用研究

软件版本


  • Python: 3.7.3
  • OS: Win7
  • protoc: 3.11.2
  • protobuf runtime library: 3.11.2
  • protobuf runtime library install method: pip
  • proto syntax: "proto2"


注意事项


  • 使用编译工具protoc编译输出的.py文件对python解释器以及对应的protobuf包都有版本要求
  • 对应的嵌套message类在赋值时需要注意要求及方法的使用
  • 因为google protobuf向前兼容,所以使用"proto2"也可以
  • 官方网站访问卡顿,下载protoc可以从maven下载
  • python安装包也有镜像网站
  • 关于为何使用该包可以参见
  • google protobuf官网


基本代码示例

  #声明消息头
  message_head = message_pb2.MessageBase.Header()
  #枚举的赋值值得关注
    message_head.type = message_pb2.MessageBase.SERVICE_REQ
  #声明消息体,包含了一个Alarm对象的实例
    message_body = message_pb2.MessageBase.Body()
    message_body.context.MergeFrom(alarm)
  #声明整个消息体并对其实例化,整合消息头和消息体的数据
    message = message_pb2.MessageBase()
    message.header.MergeFrom(message_head)
    message.body.MergeFrom(message_body)


总结


下图是序列化的结果

image.png

前期把java的跑通了,最近迷上了python,也想跑通。官方提供了上述编码中遇到的MergeFrom()方法也是个基本方法之一,注意的细节也说明了,其它问题应该都好解决。


https://repo1.maven.org/maven2/com/google/protobuf/protoc/ ↩︎


http://npm.taobao.org/mirrors/python/ ↩︎


https://blog.csdn.net/mzpmzk/article/details/80824839 ↩︎


https://developers.google.cn/protocol-buffers ↩︎


相关文章
|
12月前
|
机器学习/深度学习 算法 调度
基于多动作深度强化学习的柔性车间调度研究(Python代码实现)
基于多动作深度强化学习的柔性车间调度研究(Python代码实现)
487 1
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
424 2
|
12月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
1010 0
|
11月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
12月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
776 6
|
12月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
1093 2
|
12月前
|
机器学习/深度学习 数据采集 算法
独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测研究(Python代码实现)
独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测研究(Python代码实现)
378 2
|
12月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
1221 4
|
12月前
|
JavaScript 关系型数据库 MySQL
基于python的医院智慧门诊系统研究
本系统基于Python和Django框架,结合MySQL、Vue等技术,构建功能全面、易用性强的医院智慧门诊平台。系统涵盖患者与医务人员信息管理、在线挂号、智能导诊、电子病历、远程医疗等功能,优化就医流程,提升医疗效率与服务质量,助力医疗服务数字化转型。
基于python的医院智慧门诊系统研究
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
312 1