程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

protobuf安裝及使用(python)

編輯: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


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved