protobuf python 示例
时间: 2023-07-28 07:08:46 浏览: 102
下面是一个使用Python protobuf的简单示例:
首先,确保已经安装了protobuf库。可以使用以下命令进行安装:
```
pip install protobuf
```
接下来,创建一个.proto文件,定义你的消息格式。例如,创建一个名为person.proto的文件,内容如下:
```protobuf
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
repeated string hobbies = 3;
}
```
然后,使用以下命令将.proto文件编译为Python代码:
```
protoc -I=. --python_out=. person.proto
```
这将生成一个名为person_pb2.py的Python文件,其中包含了用于序列化和反序列化Person消息的代码。
接下来,你可以使用生成的代码来创建和操作Person对象。以下是一个示例代码:
```python
import person_pb2
# 创建一个Person对象
person = person_pb2.Person()
person.name = "Alice"
person.age = 25
person.hobbies.append("reading")
person.hobbies.append("sports")
# 将Person对象序列化为字节流
serialized_data = person.SerializeToString()
# 将字节流反序列化为Person对象
deserialized_person = person_pb2.Person()
deserialized_person.ParseFromString(serialized_data)
# 访问反序列化后的Person对象的属性
print(deserialized_person.name) # 输出:Alice
print(deserialized_person.age) # 输出:25
print(deserialized_person.hobbies) # 输出:['reading', 'sports']
```
这是一个简单的示例,演示了如何使用Python protobuf库来序列化和反序列化对象。你可以根据自己的需求定义更复杂的消息格式,并在代码中进行操作。
阅读全文