python模組之序列化模組

2022-05-17 08:31:36 字數 3116 閱讀 8046

序列化

"""

序列--字串

序列化--其他資料型別轉化為字串資料型別

反序列化--字串轉化為其他資料型別

"""

json模組

"""

json 五星好評 數字 字串 列表 字典 元組

優點:通用的序列化格式

缺點:只有很少的一部分資料型別-->字串

"""

1,dumps和loads

import

json

#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)

print

(str_d)

#列印內容:

""""""

pickle模組

"""

pickle 序列化為bytes型別

優點:python中所有的資料型別-->字串

缺點:序列化的內容只有python能識別,序列化和反序列化需要相同的環境。

"""

pickle方法和json的方法相同

import

pickle

#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方法,開啟檔案返回乙個序列化控制代碼,通過操作控制代碼來完成序列化的相關操作。

import

shelve

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...