序列化——轉向乙個字串資料型別
序列——字串
用在資料儲存以及在網路上傳輸的時候等
從資料類》字串的過程 叫序列化
從字串》資料型別的過程 叫反序列化
json是乙個在所有語言都通用的序列化格式,但是相對的它支援的資料型別就比較少了
只有很少的一部分資料型別能夠通過json轉化成字串
在python中,數字int,字串str,列表list,字典dict都是能序列化的
元組tuple也能序列化,不過它是轉成列表再序列化的,反序列化後還是列表
集合set是不能進行序列化的
dumps
importjson
li = [1,2,3,'
holle
',[22,33],,(23,3)]
ret =json.dumps(li)
print(type(ret),ret)
[1, 2, 3, "holle", [22, 33], , [23, 3]]
loads
importjson
li = [1,2,3,'
holle
',[22,33],,(23,3)]
ret =json.dumps(li)
(type(ret),ret)
ret2 =json.loads(ret)
print(type(ret2),ret2)
[1, 2, 3, "holle", [22, 33], , [23, 3]]
[1, 2, 3, 'holle', [22, 33], , [23, 3]]
除了這倆還有另外兩個dump和load,這倆看著和上面倆只是差個s
它們的功能也是相似的,當然也有著不聽之處
dump
importjson
li =
f = open('
file
','w
',encoding='
utf-8')
json.dump(li,f)
f.close()
它的作用是在乙個檔案中寫入序列化之後的字串
load
importjson
li =
f = open('
file
','w
',encoding='
utf-8')
json.dump(li,f)
f.close()
f = open('
file')
res =json.load(f)
f.close()
print(type(res),res)
對檔案的讀取,讀取必須是用dump寫入的
所有python中的資料型別都可以轉化成字串形式
pickle序列化的內容只有python能理解
pickle反序列化必須要與序列化時相同的環境支援
pickle的用法和json的一樣
不過dumps寫的是bytes型別的,所以讀寫要加上bytes型別的轉換
序列化控制代碼
使用控制代碼直接操作,非常方便
importshelve
f = shelve.open('
shelve_file')
f['key'] =
f.close()
f1 = shelve.open('
shelve_file')
existing = f1['
key'
] f1.close()
print(existing)
直接對檔案控制代碼操作,就可以存入資料
取出資料的時候也只需要直接用key獲取即可,但是如果key不存在會報錯
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...