python 序列化模組 python 序列化模組

2021-10-16 15:26:33 字數 2198 閱讀 5309

一、介紹

1、分類

序列化:

資料型別->字串

反序列化

字串->資料型別

2、作用

檔案傳輸和檔案儲存需要將資料型別轉換成字串

二、序列號模組分類

1、json

優點:程式語言中的英語,同用語言

缺點:資料型別少:數字、字串、列表、字典、元祖(通過列表進行的)

2、pickle

優點:python的所有資料型別

缺點:不通用,只能在python中使用

3、shelve

優點:操作簡單,只要使用序列化控制代碼操作即可

缺點:不成熟

三、json模組

1、dumps() 和 loads() 方法

importjson

dic= """dic->str,使用dumps()方法,在記憶體中序列化

str->dic,使用loads()方法,在記憶體中反序列化"""str_d=json.dumps(dic)print(str_d, type(str_d))

dic_d=json.loads(str_d)print(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 inli:

s=json.dumps(i)

f.write(s+ '\n')

f.close()

f1= open('cv', mode='r', encoding='utf-8')for line inf1:

s0=json.loads(line.strip())

f.close()

ensure_ascii 預設引數為 false時,可以寫中文

四、pickle模組

1、用法和json模組相似

2、區別

1)在使用dump()和load()方法,序列化和反序列化時,檔案的mode要加b

2)在使用dump()和load()方法時,檔案可以逐行序列化和反序列化,json不可以

importpickleimporttime

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)print(s_time1.tm_year)print(s_time2.tm_year)

f.close()

五、shelve模組

不常用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 序列化模組

1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資料型別 缺點 不通用,只能在p...

python模組 序列化

主要內容 1.序列化模組.json pickle shelve 了解 序列化模組 為了把資料用於網路傳輸,以及檔案的讀寫操作.序列化 將資料轉化成序列化字串.反序列化 將序列化字串轉化成原資料.序列化模組 序列化是創造乙個序列.如何把乙個字典傳給其他人,依賴之前的知識也可以做到,參考如下 dic s...

python 序列化模組

序列化 轉向乙個字串資料型別 序列 字串 用在資料儲存以及在網路上傳輸的時候等 從資料類 字串的過程 叫序列化 從字串 資料型別的過程 叫反序列化 json是乙個在所有語言都通用的序列化格式,但是相對的它支援的資料型別就比較少了 只有很少的一部分資料型別能夠通過json轉化成字串 在python中,...