文章插圖

文章插圖
1. 介紹
1.1 介紹
福哥在用Python去讀PHP語言開發的項目的數據庫的時候,發現一些字段里存儲的居然是經過PHP的serialize函數序列化過的數據,這個要解開它通過json庫是不行的了,怎么辦呢?
原來Python專門有個庫用來模擬PHP語言的serialize和unserialize的功能,它就是phpserialize庫 。
2. 安裝
phpserialize庫可以直接通過pip進行安裝 。
pip3installphpserialize3. 使用3.1 序列化
使用phpserialize庫序列化一個結構轉化為一個字符串用到的是dumps方法,用法和json庫類似,區別是編碼參數不是encoding是charset 。
user={'id':35,'name':"福哥",'abilities':["PHP","Java","Python","JavaScript","C/C++","Asp.net"]}print("原始數據:")print(user)print("序列化數據:")userSN=phpserialize.dumps(user,charset="utf-8")print(userSN)4. 反序列化
使用phpserialize庫反序列化一個序列化字符串得到原始數據結構用的是loads方法,用法和json庫基本一樣,同樣編碼參數也是charset而不是我們想象的encoding 。
userSN=b"a:3:{s:2:"id";i:35;s:4:"name";s:6:"xe7xa6x8fxe5x93xa5";s:9:"abilities";a:6:{i:0;s:3:"PHP";i:1;s:4:"Java";i:2;s:6:"Python";i:3;s:10:"JavaScript";i:4;s:5:"C/C++";i:5;s:7:"Asp.net";}}"print("序列化數據:")print(userSN)print("原始數據:")user=phpserialize.loads(userSN,charset="utf-8")print(user)5. 總結
【php和python哪個好 php與python的區別哪個前景好】福哥今天帶著童鞋們學習了Python的phpserialize庫的使用方法,通過phpserialize庫可以讓Python語言擁有解析PHP的序列化數據的能力 。
- 網站框架源碼 網站模板和源碼
- 宇宙少女311事件是什么意思 苞娜不和吳宣儀互動
- 矢野浩二老婆到底是誰 和傅晶的緋聞真相
- 管彤和韓紅結婚照真相 兩人的緋聞已經辟謠
- 非常完美李雪和誰牽手成功 現狀如何了
- 清linux的緩存 linux如何清理緩存
- 如何注冊公司和品牌商標 品牌商標是怎么注冊的
- saas是云服務嗎 云服務和saas有什么區別
- e系列cpu和i系列cpu差別 i系列跟e系列的cpu區別
- 為什么想吃辣的
