json模組與pickle模組

2022-09-05 15:48:16 字數 3543 閱讀 7991

json&pickle模組

1、什麼是序列化&反序列化

記憶體中的資料型別---->序列化---->特定的格式(json格式或者pickle格式)

記憶體中的資料型別<----反序列化<----特定的格式(json格式或者pickle格式)

2、為何要序列化

序列化得到結果=>特定的格式的內容有兩種用途

1)、可用於儲存=》用於存檔

2)、傳輸給其他平台使用=》跨平台資料互動

強調:針對用途1的特定一格式:可是一種專用的格式=》pickle只有python可以識別

針對用途2的特定一格式:應該是一種通用、能夠被所有語言識別的格式=》json

json(用於跨平台資料互動)

序列化:

import json

json_res=json.dumps([1,'aaa',true,false])

print(json_res,type(json_res)) # "[1, "aaa", true, false]"

反序列化:

json_res=json.dumps([1,'aaa',true,false])

l=json.loads(json_res)

print(l,type(l))

json驗證: json格式相容的是所有語言通用的資料型別,不能識別某一語言的所獨有的型別

json強調:一定要搞清楚json格式,不要與python混淆

pickle模組 (用於存檔)

import pickle

序列化:

# res=pickle.dumps()

# print(res,type(res))

反序列化:

# s=pickle.loads(res)

# print(s,type(s))

案例:

# 1、什麼是序列化&反序列化

# 記憶體中的資料型別---->序列化---->特定的格式(json格式或者pickle格式)

# 記憶體中的資料型別<----反序列化<----特定的格式(json格式或者pickle格式)

# 土辦法:

# --->序列化str()----->""

# <---反序列化eval("")<-----""

# 2、為何要序列化

# 序列化得到結果=>特定的格式的內容有兩種用途

# 1、可用於儲存=》用於存檔

# 2、傳輸給其他平台使用=》跨平台資料互動

# python j**a

# 列表 特定的格式 陣列

# 強調:

# 針對用途1的特定一格式:可是一種專用的格式=》pickle只有python可以識別

# 針對用途2的特定一格式:應該是一種通用、能夠被所有語言識別的格式=》json

# 3、如何序列化與反序列化

# 示範1

# import json

# # 序列化

# json_res=json.dumps([1,'aaa',true,false])

# print(json_res,type(json_res)) # "[1, "aaa", true, false]"

## # 反序列化

# l=json.loads(json_res)

# print(l,type(l))

# 示範2:

import json

# 序列化的結果寫入檔案的複雜方法

# json_res=json.dumps([1,'aaa',true,false])

# # print(json_res,type(json_res)) # "[1, "aaa", true, false]"

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

# f.write(json_res)

# 將序列化的結果寫入檔案的簡單方法

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

# json.dump([1,'aaa',true,false],f)

# 從檔案讀取json格式的字串進行反序列化操作的複雜方法

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

# json_res=f.read()

# l=json.loads(json_res)

# print(l,type(l))

# 從檔案讀取json格式的字串進行反序列化操作的簡單方法

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

# l=json.load(f)

# print(l,type(l))

# json驗證: json格式相容的是所有語言通用的資料型別,不能識別某一語言的所獨有的型別

# json.dumps()

# json強調:一定要搞清楚json格式,不要與python混淆

# l=json.loads('[1, "aaa", true, false]')

# l=json.loads("[1,1.3,true,'aaa', true, false]")

# print(l[0])

# 了解

# l = json.loads(b'[1, "aaa", true, false]')

# print(l, type(l))

# with open('test.json',mode='rb') as f:

# l=json.load(f)

# res=json.dumps()

# print(res,type(res))

# res=json.loads('')

# print(res,type(res))

# 4、猴子補丁

# 在入口處打猴子補丁

# import json

# import ujson

## def monkey_patch_json():

# json.__name__ = 'ujson'

# json.dumps = ujson.dumps

# json.loads = ujson.loads

## monkey_patch_json() # 在入口檔案出執行

# import ujson as json # 不行(每個檔案都要改)

# 後續**中的應用

# json.dumps()

# json.dumps()

# 5.pickle模組

import pickle

# res=pickle.dumps()

# print(res,type(res))

# s=pickle.loads(res)

# print(s,type(s))

pickle模組 和json模組

pickle和json序列號 json模組是所有語言通用的,可以用來把一些資料轉成字串儲存在檔案中 import json l 1,2,3 with open t3 mode w encoding utf 8 as f print json.dump l,f import json l 1,2,3 ...

python之json與pickle模組

序列化指的是把記憶體的資料型別轉換成乙個特定的格式的內容 該格式的內容可用於儲存或者傳輸個其他平台使用 反序列化 與序列化相反 記憶體中的資料型別 序列化 特定的格式 json或pickle格式 記憶體中的資料型別 反序列化 特定的格式 json或pickle格式 為何要用?序列化得到的結果 特定的...

python的json和pickle模組

一。序列化反序列化01 什麼是序列化 反序列化 序列化就是將記憶體中的資料結構轉換成一種中間格式儲存到硬碟或者基於網路傳輸 發序列化就是硬碟中或者網路中傳來的一種資料格式轉換成記憶體中資料結構 02 為什要有 1 可以儲存程式的執行狀態 2 資料的跨平台互動 03 怎麼用 json 優點 跨平台性強...