protobuf安装及使用(python)

在一个项目中,被要求用protobuf加密。对方生成了一个编译后的py文件给我。
给我指示:把我生成的变量值赋值到py文件的data类中,再调用其中的serialtostring()方法来实现protobuf加密。
理解下来,其实protobuf加密就是序列化。

我把py文件加载到我的pycharm工程中,其中开头加载依赖中有写:
from google.protobuf import…
但是我在pycharm的setting里面,安装了google后,这个加载依赖的命令还是有红色波浪线。

所以我上网查了以下如何安装protobuf,其中下面这篇博文推荐大家:
https://blog.csdn.net/u013210620/article/details/81317731
其中有个地方好像错了:
3.继续安装protobuf的python模块(如果不用python,可跳过这一步)
cd ./python
这里应该是cd python/
按照上面这篇blog安装后,会在下面的路径中看到google文件夹:
/opt/protobuf3.6.0/python/
接下来,我把这个目录下的整个google文件夹拷贝到我的pycharm工程里,加载依赖包里的红色波浪线就消失了,加载依赖就成功了。

使用:

1.序列化:

protobuf的结构文本序列化成了二进制
data_serial = XXXX_pb2.Data()
data_serial.timeStamp = int(time.time())
pay_pid_serial = data_serial.SerializeToString()
通过实例化,再赋值,再调用其中的一个方法的方式,就可以实现protobuf加密了。

2.反序列化:

二进制转换成protobuf
使用函数ParseFromString()

 data_str = XXXX_pb2.Data()  # 实例化
 data_o = data_str.ParseFromString(data_i)
 # data_i: 需要反序列化的字符串编码
 # data_o: 反序列化后proto格式的数据

关于使用,这个blog写的不错:
https://blog.csdn.net/u013421629/article/details/114266759

猜你喜欢

转载自blog.csdn.net/weixin_46870583/article/details/120707263