序列化模組

2022-09-06 17:33:05 字數 2589 閱讀 1651

把物件(變數)從記憶體中變成可儲存或傳輸的過程稱為序列化

如果要在不同的程式語言之間傳遞物件,就必須把物件序列化為標準格式,如果有序列化為json表示出來的就是乙個字串,可以被所有語言讀取,也可以方便的儲存到磁碟或者通過網路傳輸

json和python內建的資料型別對應如下:

json型別

python型別

{}dict

list

"string"

str123.45

int或float

true/false

true/false

null

none

1

import

json

2 dic =

3print(type(dic))#

45 j =json.dumps(dic)

6print(type(j))#

78 f = open("

序列化物件

",'w')

9 f.write(j)#

等價於json.dump(dic,f)

10f.close()

1112

#反序列化

13 f = open("

序列化物件")

14 data = json.loads(f.read())#

等價於data = json.load(f)

1.

1

import

json

2 dic =

3 ret =json.dumps(dic)

4 res =json.loads(ret)

5print

(dic,type(dic))#

6print

(ret,type(ret))#

7print(res,type(res))#

2.

1

import

json

2 dic =

3 ret =json.dumps(dic)

4print(dic,type(dic))#

5print(ret,type(ret))#

如果字典的值為元組,序列化後會轉為列表

3.

1

import

json

2 s =

3 s1 =json.dumps(s)

4print

(s1)5#

會報錯typeerror: object of type set is not json serializable

6 集合型別不是可序列化的物件

4.

1

import

json

2 dic =

3 dic1 =json.dumps(dic)

4print(dic1)

會報錯

typeerror: keys must be str, int, float, bool or none, not tuple

字典的鍵必須是str,int,float,bool或none,元組不能作為鍵

5.

1

import

json

2 dic =

3 with open("

json_file

","a

") as f:

4json.dump(dic,f)

5json.dump(dic,f)

67 with open("

json_file

","r

") as f:

8 dic = json.load(f)

不支援連續的訪問

dumps和loads

在記憶體中做資料轉換:

dumps  資料型別轉成字串  #序列化

loads   字串轉成資料型別  #反序列化

dump和load

直接將資料型別寫入檔案,直接從檔案中讀出資料型別

dump  資料型別寫入檔案  #序列化

load  從檔案讀出資料型別  #反序列化

2.pickle模組

1.支援在python中幾乎所有的資料型別

2.dumps序列化的結果只能是位元組

3.只能在python中使用

4.在和檔案操作的時候,需要用rb,wb的模式開啟檔案

5.可以多次dump和load

序列化模組

模組 乙個py檔案就是乙個模組.python開發效率之高 python的模組非常多,第三方庫.模組分類 1,內建模組 登入模組,時間模組,sys模組,os模組 等等.所有的擴充套件模組 3,自定義模組.自己寫的py檔案.序列化模組.序列化 創造乙個序列.例項化 創造乙個例項 物件 將乙個字典通過網路...

序列化模組

什麼叫序列化 將原本的字典 列表等內容轉換成乙個字串的過程就叫做序列化。那為什麼要序列化呢?比如,我們在python 中寫的一段 需要c上使用,那我們怎麼給?我們能想到的方法就是存在檔案裡,然後在c上再從檔案裡讀出來。但是我們都知道,對於檔案來說是沒有 不是所有的資料型別檔案都能夠識別的比如字典 列...

序列化模組

序列化模組 把某資料型別轉化成字串型別 序列化 字串型別轉化為其他資料型別 反序列化 josn模組 只有很少一部分資料型別能通過josn轉化成字串型別 字典 列表 元組 元組會轉化成列表 import json dic str dic json.dumps dic dumps字典型別轉化成字串型別 ...