序列化
"""序列--字串
序列化--其他資料型別轉化為字串資料型別
反序列化--字串轉化為其他資料型別
"""
json模組
"""json 五星好評 數字 字串 列表 字典 元組
優點:通用的序列化格式
缺點:只有很少的一部分資料型別-->字串
"""
1,dumps和loads
importjson
#dumps和loads 操作記憶體中的資料
dic =
print(type(dic), dic) #
str_d = json.dumps(dic) #
序列化print(type(str_d), str_d) #
dic_l = json.loads(str_d) #
反序列化
print(type(dic_l), dic_l) #
2,dump和load
#dump和load 操作檔案中的資料 序列化中文的話,要修改預設引數ensure_ascii=false
dic =
f = open('
json_test
', '
w', encoding='
utf-8')
json.dump(dic, f)
#檔案序列化入的內容為
f.close()
f = open('
json_test
', encoding='
utf-8')
#load只能反序列化一次性序列化入檔案中的內容,如果多次dump,load時會報錯!
ret =json.load(f)
print(ret) #
f.close()
json一些引數的用法
dic =str_d = json.dumps(dic) #
序列化str_d1 = json.dumps(dic, ensure_ascii=false) #
序列化中文要想能看懂內容,要修改引數ensure_ascii=false
print(str_d) #
print(str_d1) #
#特殊格式的序列化
dic =
str_d = json.dumps(dic, sort_keys=true, indent=4, separators=('
,', '
:'), ensure_ascii=false)
(str_d)
#列印內容:
""""""
pickle模組
"""pickle 序列化為bytes型別
優點:python中所有的資料型別-->字串
缺點:序列化的內容只有python能識別,序列化和反序列化需要相同的環境。
"""
pickle方法和json的方法相同
importpickle
#pickle和json的用法一樣,不同的是序列化之後的值是bytes型別
dic =
pd_str =pickle.dumps(dic)
print(pickle) #
序列化 列印bytes型別
pl_str =pickle.loads(pd_str)
print(pl_str) #
反序列化
dic =
f = open('
pickle_test
', 'wb'
)pickle.dump(dic, f)
#序列化 寫入的是bytes型別
f.close()
f = open('
pickle_test
', 'rb'
)ret = pickle.load(f) #
反序列化
print(ret)
shelve模組
"""shelve
存在序列化控制代碼
使用控制代碼直接操作,非常方便
"""
shelve只有open方法,開啟檔案返回乙個序列化控制代碼,通過操作控制代碼來完成序列化的相關操作。
importshelve
f = shelve.open('
shelve_test
') #
產生序列化控制代碼
f['key
'] = #
操作控制代碼進行檔案序列化寫入
f.close()
f = shelve.open('
shelve_test')
print(f['
key']) #
反序列化取值,key必須存在,否則報錯
f.close()
shelve writeback引數的用法
f = shelve.open('shelve_test
', writeback=false) #
引數writeback=false 資料修改不會生效
f['key
']['
k3'] = 'v3'
#修改並沒有生效
f.close()
f = shelve.open('
shelve_test')
print(f['
key']) #
f.close()
f = shelve.open('
shelve_test
', writeback=true)f['
key']['
k3'] = 'v3'
#修改生效
f.close()
f = shelve.open('
shelve_test')
print(f['
key']) #
f.close()
python 序列化模組 python 序列化模組
一 介紹 1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 二 序列號模組分類 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資...
python 序列化模組
1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資料型別 缺點 不通用,只能在p...
python模組 序列化
主要內容 1.序列化模組.json pickle shelve 了解 序列化模組 為了把資料用於網路傳輸,以及檔案的讀寫操作.序列化 將資料轉化成序列化字串.反序列化 將序列化字串轉化成原資料.序列化模組 序列化是創造乙個序列.如何把乙個字典傳給其他人,依賴之前的知識也可以做到,參考如下 dic s...