簡單談?wù)凱ython中的json與pickle
這是用于序列化的兩個模塊:
• json: 用于字符串和python數(shù)據(jù)類型間進行轉(zhuǎn)換
• pickle: 用于python特有的類型和python的數(shù)據(jù)類型間進行轉(zhuǎn)換
Json 模塊提供了四個功能:dumps、dump、loads、load
pickle 模塊提供了四個功能:dumps、dump、loads、load
import pickle
data = {'k1':123, 'k2':888}
#dumps可以將數(shù)據(jù)類型轉(zhuǎn)換成只有python才認(rèn)識的字符串
p_str = pickle.dumps(data)
print p_str
輸出結(jié)果:
(dp0
S'k2'
p1
I888
sS'k1'
p2
I123
s.
將數(shù)據(jù)轉(zhuǎn)換成只有Python認(rèn)識的字符串,并寫入文件:
import pickle
data = {'k1':123, 'k2':888}
#打開文件,然后將data寫入
with open('data.pkl', 'wb') as f:
pickle.dump(data, f)
#同樣讀取的時候也需要打開文件
with open('data.pkl', 'rb') as f:
data_1 = pickle.load(f)
print data_1
結(jié)果:
{'k2': 888, 'k1': 123}
文件中顯示的內(nèi)容與上面一致
json的用法和pickle是一樣的
import json
data = {'k1':123, 'k2':888}
p_str = json.dumps(data)
print p_str, type(p_str)
結(jié)果:
{"k2": 123, "k1": 888} <type 'str'>
看起來好像是個字典,但要注意了,實際上這是個字符串,因為json只能是字符串格式,只是看起來像字典而已。
import json
data = {'k1':123, 'k2':123}
#打開文件,然后將data寫入
with open('data.pkl', 'w') as f:
json.dump(data, f)
#同樣讀取的時候也需要打開文件
with open('data.pkl', 'r') as f:
data_1 = json.load(f)
print(data_1, type(data_1))
結(jié)果:
({u'k2': 123, u'k1': 123}, <type 'dict'>)
能夠讀取出來,而且類型也是正確的。
那pickle和json有什么區(qū)別呢?
在上面兩段代碼中,pickle寫入和讀取文件時,用的是 ‘b'模式,而json沒有。
json是可以在不同語言之間交換數(shù)據(jù)的,而pickle只在python之間使用。
json只能序列化最基本的數(shù)據(jù)類型,而pickle可以序列化所有的數(shù)據(jù)類型,包括類,函數(shù)都可以序列化。
以上這篇簡單談?wù)凱ython中的json與pickle就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python序列化模塊之pickle與json詳解
- Python常用標(biāo)準(zhǔn)庫詳解(pickle序列化和JSON序列化)
- Python 對象序列化與反序列化之pickle json詳細(xì)解析
- Python 解析庫json及jsonpath pickle的實現(xiàn)
- Python標(biāo)準(zhǔn)庫json模塊和pickle模塊使用詳解
- Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)詳解
- Python3.5 Json與pickle實現(xiàn)數(shù)據(jù)序列化與反序列化操作示例
- Python序列化基礎(chǔ)知識(json/pickle)
- 詳解Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)
- Python序列化模塊JSON與Pickle
相關(guān)文章
python+pytest接口自動化參數(shù)關(guān)聯(lián)
這篇文章主要介紹了python+pytest接口自動化參數(shù)關(guān)聯(lián),參數(shù)關(guān)聯(lián),也叫接口關(guān)聯(lián),即接口之間存在參數(shù)的聯(lián)系或依賴,更多相關(guān)內(nèi)容需要的小伙伴可可以參考一下2022-06-06
pygame開發(fā):馬賽邏輯小游戲的代碼實現(xiàn)
這篇文章主要介紹了pygame開發(fā),通過本文,您可以使用pygame開發(fā)一個馬賽邏輯小游戲~有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
python利用smtplib實現(xiàn)QQ郵箱發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了python利用smtplib實現(xiàn)QQ郵箱發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
對Python 網(wǎng)絡(luò)設(shè)備巡檢腳本的實例講解
下面小編就為大家分享一篇對Python 網(wǎng)絡(luò)設(shè)備巡檢腳本的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python實現(xiàn)的多任務(wù)版udp聊天器功能案例
這篇文章主要介紹了python實現(xiàn)的多任務(wù)版udp聊天器功能,結(jié)合具體案例形式分析了Python基于udp的聊天器功能相關(guān)實現(xiàn)與使用技巧,需要的朋友可以參考下2019-11-11

