Protocol Buffers 是google开发的一个可以序列化 反序列化object的数据交换格式,类似于xml,但是比xml 更轻,更快,更简单。而且和xml json等数据序列化一样,跨平台跨语言。
安装
- 直接从 github 上下载整个项目 protobuf
- 解压,进入到 python 目录下
- Build and run the tests:
python setup.py build
python setup.py test
- Install:
python setup.py install
使用
简易使用。
- 在 hello.proto 文件中定义数据格式:
syntax = "proto3";
package hello;
message SearchRequest {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
}
- 使用命令,在当前路径下生成 hello_pb2.py 文件:
protoc -I . --python_out=. hello.proto
- 然后就可以用生成好的类对数据进行序列化反序列化:
import hello_pb2
a = hello_pb2.SearchRequest()
a.query = 'hello'
a.page_number = 2
a.result_per_page = 10
ss = a.SerializeToString()
oo = hello_pb2.SearchRequest()
oo.ParseFromString(ss)
print(oo.query)
print(oo.page_number)
print(oo.result_per_page)
## output
hello
2
10
reference:
https://www.cnblogs.com/piperck/p/6290147.html