Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python protobuf

作者:你不爱我就滚。   发布日期:2026-05-10   浏览:29

# 导入protobuf相关的库
import protobuf.example_pb2 as example_pb2  # 假设example_pb2是编译后的protobuf文件

# 创建一个Person对象
person = example_pb2.Person()
person.id = 1234
person.name = "John Doe"
person.email = "jdoe@example.com"

# 添加电话号码
phone = person.phones.add()
phone.number = "555-4321"
phone.type = example_pb2.Person.HOME

# 序列化为字符串
serialized_person = person.SerializeToString()

# 反序列化
new_person = example_pb2.Person()
new_person.ParseFromString(serialized_person)

# 打印反序列化后的对象信息
print("ID:", new_person.id)
print("Name:", new_person.name)
print("Email:", new_person.email)
for phone in new_person.phones:
    print("Phone:", phone.number, "Type:", example_pb2.Person.PhoneType.Name(phone.type))

解释说明:

  1. 导入库:首先导入了编译后的protobuf模块example_pb2,这是通过protoc编译器从.proto文件生成的Python代码。
  2. 创建对象:创建了一个Person对象,并设置了其属性(如id, name, email)。
  3. 添加电话号码:使用phones.add()方法添加了一个电话号码,并设置了电话类型。
  4. 序列化:将Person对象序列化为字节字符串,以便可以存储或传输。
  5. 反序列化:将序列化的字节字符串解析回一个新的Person对象。
  6. 打印信息:最后打印出反序列化后的对象信息,验证数据是否正确恢复。

上一篇:zip在python中的含义

下一篇:python base64解码

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python的assert基本用法

python开发windows应用程序

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站