python的json和pickle模組

2021-08-20 20:59:29 字數 2822 閱讀 3406

一。序列化反序列化
01 什麼是序列化/反序列化

序列化就是將記憶體中的資料結構轉換成一種中間格式儲存到硬碟或者基於網路傳輸

發序列化就是硬碟中或者網路中傳來的一種資料格式轉換成記憶體中資料結構

02 為什要有

1、可以儲存程式的執行狀態

2、資料的跨平台互動

03 怎麼用

json

優點:跨平台性強

缺點:只能支援/對應python部分的資料型別

pickle

優點:可以支援/對應所有python的資料型別

缺點:只能被python識別,不能跨平台

二。json模組的應用

json的序列化

importjson

dic=

#序列化:記憶體中的資料型別------>中間格式json

# # 1、序列化得到json_str

# json_str=json.dumps(dic)

# # 2、把json_str寫入檔案

# with open('db.json','wt',encoding='utf-8') as f:

# f.write(json_str)

#1和2合為一步

withopen('db.json','wt',encoding='utf-8')asf:

json.dump(dic,f)

# print(json_str,type(json_str)) # json格式不能識別單引號,全都是雙引號

json的反序列化
importjson

#反序列化:中間格式json-----》記憶體中的資料型別

# #1、從檔案中讀取json_str

# with open('db.json','rt',encoding='utf-8') as f:

# json_str=f.read()

# #2、將json_str轉成記憶體中的資料型別

# dic=json.loads(json_str)

#1和2可以合作一步

withopen('db.json','rt',encoding='utf-8')asf:

dic=json.load(f)

print(dic['***'])

json的注意點

# json格式不能識別單引號,全都是雙引號

importjson

# with open('db1.json','rt',encoding='utf-8') as f:

# json.load(f)

# json.loads('')

# with open('db.json','wt',encoding='utf-8') as f:

# l=[1,true,none]

# json.dump(l,f)

# 用json反序列化

# with open('db.json','rt',encoding='utf-8') as f:

# l=json.load(f)

# print(l)

# 用eval反列化

# with open('db.json','rt',encoding='utf-8') as f:

# s=f.read() #s ='[1, true, null]'

# dic=eval(s) #eval('[1, true, null]')

# print(dic['name'])

三。pickle模組的應用

pickle的序列化

importpickle

dic=

# #1 序列化

# pkl=pickle.dumps(dic)

# # print(pkl,type(pkl))

## #2 寫入檔案

# with open('db.pkl','wb') as f:

# f.write(pkl)

#1和2可以合作一步

# with open('db.pkl','wb') as f:

# pickle.dump(dic,f)

pickle的反序列化
# # #1、從檔案中讀取pickle格式

# with open('db.pkl','rb') as f:

# pkl=f.read()

# #2、將json_str轉成記憶體中的資料型別

# dic=pickle.loads(pkl)

# print(dic['a'])

#1和2可以合作一步

# with open('db.pkl','rb') as f:

# dic=pickle.load(f)

## print(dic['a'])

importjson,pickle

s=# json.dumps(s)

pickle.dumps(s)

JSON 和 JSON 的方法

json資料格式 只支援高版本瀏覽器,低版本使用json2.js json是什麼 json是一種長的物件的字串,它是一種 資料格式 一般由後端給的 比如 1,2,3,4 xml 也是資料格式長的像下面 柔絲json.parse json 把json格式轉成物件 注意 json格式必須為標準的json...

python檔案,異常和json

1.開啟檔案 with open digits.txt as file object open 返回乙個表示檔案的物件,將這個物件儲存再後面的變數中contents file object.read print contents.rstrip rstrip刪除空行 2.異常 try print 5 ...

Python中的json和dict轉換

一 json和dict python中的dict型別和json格式互相轉換,需要用到json庫 import json 字典轉化成json json.dumps dict json轉化成字典 dict json.loads 二 轉換 1 例項 python中並沒有json型別這一說法,通過json....