2024年Python最新python之protobuf使用案例_python protobuf 使用案例(1)

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phones = 4;   //repeate 类似数组,里面可以存放多个PhoneNumber 可自定义类型
}

message AddressBook {
  repeated Person people = 1;
}

### 3. 生成python 协议文件.py格式



protoc -I= S R C D I R − − p y t h o n o u t = SRC_DIR --python_out= SRC

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Protobuf 是一个用于序列化结构化数据的库,它使用 Protocol Buffers 格式来定义数据结构和消息格式。下面是使用 Python Protobuf 的一些基本步骤: 1. 安装 protobuf 库: ``` pip install protobuf ``` 2. 定义消息格式: 首先,创建一个 `.proto` 文件来定义数据结构和消息格式。例如,创建一个名为 `person.proto` 的文件,内容如下: ```protobuf syntax = "proto3"; message Person { string name = 1; int32 age = 2; repeated string hobbies = 3; } ``` 上述代码定义了一个 `Person` 消息,包含 `name`、`age` 和 `hobbies` 字段。 3. 编译 `.proto` 文件使用 `protoc` 命令将 `.proto` 文件编译成 Python 代码。在命令行中运行以下命令: ``` protoc -I=. --python_out=. person.proto ``` 这将在当前目录生成一个 `person_pb2.py` 的文件,用于在 Python 中操作 `Person` 消息。 4. 使用 Protobuf 消息: 在 Python使用编译生成的代码来创建和操作 Protobuf 消息。下面是一个示例: ```python import person_pb2 # 创建一个 Person 实例 person = person_pb2.Person() person.name = "Alice" person.age = 25 person.hobbies.extend(["reading", "swimming"]) # 将消息序列化为字节串 serialized_data = person.SerializeToString() # 反序列化字节串并访问消息字段 deserialized_person = person_pb2.Person() deserialized_person.ParseFromString(serialized_data) print(deserialized_person.name) # 输出: Alice print(deserialized_person.age) # 输出: 25 print(deserialized_person.hobbies) # 输出: ['reading', 'swimming'] ``` 以上代码演示了创建、序列化和反序列化以及访问 Protobuf 消息的基本操作。 这只是 Python Protobuf 的基本用法,更多高级功能和选项可以参考 Protobuf 文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值