<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • python與php哪個好(python項目管理方法)


    1. 介紹

    1.1 介紹

    福哥在用Python去讀PHP語言開發的項目的數據庫的時候,發現一些字段里存儲的居然是經過PHP的serialize函數序列化過的數據,這個要解開它通過json庫是不行的了,怎么辦呢?

    原來Python專門有個庫用來模擬PHP語言的serialize和unserialize的功能,它就是phpserialize庫。

    2. 安裝

    phpserialize庫可以直接通過pip進行安裝。

    pip3 install phpserialize

    3. 使用

    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)
    Python實現PHP語言的序列化和反序列化功能

    可以看到序列化的結果和PHP的serialize基本一致。因為福哥設置的編碼的UTF-8的,所以“福哥”占用了6個字符。

    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)
    Python實現PHP語言的序列化和反序列化功能

    反序列化的時候最好也加上編碼參數,避免以默認編碼反序列化出現錯誤的情況。

    5. 總結

    福哥今天帶著童鞋們學習了Python的phpserialize庫的使用方法,通過phpserialize庫可以讓Python語言擁有解析PHP的序列化數據的能力。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费