1、分類
序列化:
資料型別->字串
反序列化
字串->資料型別
2、作用
檔案傳輸和檔案儲存需要將資料型別轉換成字串
1、json
優點:程式語言中的英語,同用語言
缺點:資料型別少:數字、字串、列表、字典、元祖(通過列表進行的)
2、pickle
優點:python的所有資料型別
缺點:不通用,只能在python中使用
3、shelve
優點:操作簡單,只要使用序列化控制代碼操作即可
缺點:不成熟
1、dumps() 和 loads() 方法
importjson
dic =
"""dic->str,使用dumps()方法,在記憶體中序列化
str->dic,使用loads()方法,在記憶體中反序列化
"""str_d =json.dumps(dic)
(str_d, type(str_d))
dic_d =json.loads(str_d)
(dic_d, type(type))
"""結果:
"""
2、dump() 和 load() 方法
importjson
dic =
"""json.dump(資料, 檔案),序列化
json.load(檔案),反序列化
"""with open(file='
abc', mode='
w', encoding='
utf-8
') as f1:
json.dump(dic, f1)
with open(file='
abc', mode='
r', encoding='
utf-8
') as f1:
ret =json.load(f1)
print(ret, type(ret)) #
3、在檔案中,一行一行序列化,一行一行反序列化,必須用dumps()和loads()方法
importjson
li = [, , ]
new_li =
"""1.使用dumps()方法,li->str,並寫入檔案-逐行寫入
2.使用loads()方法,str->li,並讀取檔案-逐行讀取
"""f = open('
cv', mode='
w', encoding='
utf-8')
for i in
li: s =json.dumps(i)
f.write(s + '\n'
)f.close()
f1 = open('
cv', mode='
r', encoding='
utf-8')
for line in
f1: s0 =json.loads(line.strip())
(li)
f.close()
ensure_ascii 預設引數為 false時,可以寫中文
1、用法和json模組相似
2、區別
1)在使用dump()和load()方法,序列化和反序列化時,檔案的mode要加b
2)在使用dump()和load()方法時,檔案可以逐行序列化和反序列化,json不可以
importpickle
import
time
s_time1 = time.localtime(1000000000)
s_time2 = time.localtime(2000000000)
f = open('
pickle_file1
', 'wb'
)pickle.dump(s_time1, f)
pickle.dump(s_time2, f)
f.close()
f = open('
pickle_file1
', 'rb'
)s_time1 =pickle.load(f)
s_time2 =pickle.load(f)
(s_time1.tm_year)
(s_time2.tm_year)
f.close()
不常用
importshelve
f = shelve.open('
shelve_file')
f['key'] = #
直接對檔案控制代碼操作,就可以存入資料
f.close()
f1 = shelve.open('
shelve_file')
existing = f1['
key'] #
取出資料的時候也只需要直接用key獲取即可,但是如果key不存在會報錯
f1.close()
print(existing)
ps:涉及到反序列化的問題,用雙引號
python 序列化模組 python 序列化模組
一 介紹 1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 二 序列號模組分類 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資...
python模組 序列化
主要內容 1.序列化模組.json pickle shelve 了解 序列化模組 為了把資料用於網路傳輸,以及檔案的讀寫操作.序列化 將資料轉化成序列化字串.反序列化 將序列化字串轉化成原資料.序列化模組 序列化是創造乙個序列.如何把乙個字典傳給其他人,依賴之前的知識也可以做到,參考如下 dic s...
python 序列化模組
序列化 轉向乙個字串資料型別 序列 字串 用在資料儲存以及在網路上傳輸的時候等 從資料類 字串的過程 叫序列化 從字串 資料型別的過程 叫反序列化 json是乙個在所有語言都通用的序列化格式,但是相對的它支援的資料型別就比較少了 只有很少的一部分資料型別能夠通過json轉化成字串 在python中,...