Python3.5 Json與pickle實(shí)現(xiàn)數(shù)據(jù)序列化與反序列化操作示例
本文實(shí)例講述了Python3.5 Json與pickle實(shí)現(xiàn)數(shù)據(jù)序列化與反序列化操作。分享給大家供大家參考,具體如下:
1、Json:不同語(yǔ)言之間進(jìn)行數(shù)據(jù)交互。
(1)JSON數(shù)據(jù)序列化:dumps()
JSON數(shù)據(jù)是一種輕量級(jí)的數(shù)據(jù)交換格式,序列化:將內(nèi)存數(shù)據(jù)對(duì)象變成字符串。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
info = {
"name":"liu",
"age":25,
"sex":"girl"
}
f = open("test.txt","w")
print(json.dumps(info))
f.write(json.dumps(info))
f.close()
運(yùn)行結(jié)果如下圖:

(2)JSON數(shù)據(jù)反序列化:loads()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
f = open("test.txt","r")
data = json.loads(f.read())
print(data['age'])
運(yùn)行結(jié)果 :
25
(3)Json序列化——多次dumps;反序列化——不能實(shí)現(xiàn)多次loads
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
info = {
"name":"liu",
"age":32
}
f = open("test.txt","w")
f.write(json.dumps(info)) #序列化
info["age"]= 21
f.write(json.dumps(info))
f.close()
運(yùn)行結(jié)果:

總結(jié):Json只能處理一些簡(jiǎn)單的數(shù)據(jù)類型,如:列表、字典。字符串等。XML正在被Json逐步取代。
Json以后使用只dumps一次,loads一次即可。
2、pickle:通過(guò)pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\(yùn)行的對(duì)象信息保存到文件中去,永久存儲(chǔ);
通過(guò)pickle模塊的反序列化操作,我們能夠從文件中創(chuàng)建上一次程序保存的對(duì)象。
只能在Python語(yǔ)言中用,不能用于其他的語(yǔ)言。
(1)pickle數(shù)據(jù)序列化:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import pickle
def sayhi(name):
print("hello",name)
info = {
"name":"liu",
"age":32,
"func":sayhi
}
f = open("test.txt","wb")
print()
f.write(pickle.dumps(info))
f.close()
運(yùn)行結(jié)果如下圖:

(2)pickle數(shù)據(jù)反序列化:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import pickle
def sayhi(name):
print("hello",name)
f = open("test.txt","rb")
data = pickle.loads(f.read())
print(data["func"]("liu"))
運(yùn)行結(jié)果:
hello liu
None
PS:這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:
在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作json技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python序列化模塊之pickle與json詳解
- Python常用標(biāo)準(zhǔn)庫(kù)詳解(pickle序列化和JSON序列化)
- Python 對(duì)象序列化與反序列化之pickle json詳細(xì)解析
- Python 解析庫(kù)json及jsonpath pickle的實(shí)現(xiàn)
- Python標(biāo)準(zhǔn)庫(kù)json模塊和pickle模塊使用詳解
- Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)詳解
- Python序列化基礎(chǔ)知識(shí)(json/pickle)
- 簡(jiǎn)單談?wù)凱ython中的json與pickle
- 詳解Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)
- Python序列化模塊JSON與Pickle
相關(guān)文章
Python簡(jiǎn)單實(shí)現(xiàn)詞云圖代碼及步驟解析
這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)詞云圖代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Win8.1下安裝Python3.6提示0x80240017錯(cuò)誤的解決方法
這篇文章主要為大家詳細(xì)介紹了Win8.1下安裝Python3.6提示0x80240017錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
python利用joblib進(jìn)行并行數(shù)據(jù)處理的代碼示例
在數(shù)據(jù)量比較大的情況下,數(shù)據(jù)預(yù)處理有時(shí)候會(huì)非常耗費(fèi)時(shí)間,可以利用 joblib 中的 Parallel 和 delayed 進(jìn)行多CPU并行處理,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-10-10
ConvNeXt實(shí)戰(zhàn)之實(shí)現(xiàn)植物幼苗分類
ConvNeXts由標(biāo)準(zhǔn)ConvNet模塊構(gòu)建,在準(zhǔn)確性和可擴(kuò)展性方面與 Transformer競(jìng)爭(zhēng),實(shí)現(xiàn)87.8% ImageNet top-1 準(zhǔn)確率,在 COCO 檢測(cè)和 ADE20K 分割方面優(yōu)于 Swin Transformers。本文將利用ConvNeXt實(shí)現(xiàn)植物幼苗分類,需要的可以參考一下2022-01-01
Ubuntu16安裝CUDA(9.1)和cuDNN的實(shí)現(xiàn)步驟(圖文)
本文主要介紹了Ubuntu16安裝CUDA(9.1)和cuDNN,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
2021年最新用于圖像處理的Python庫(kù)總結(jié)
為了快速地處理大量信息,科學(xué)家需要利用圖像準(zhǔn)備工具來(lái)完成人工智能和深度學(xué)習(xí)任務(wù).在本文中,我將深入研究Python中最有用的圖像處理庫(kù),這些庫(kù)正在人工智能和深度學(xué)習(xí)任務(wù)中得到大力利用.我們開(kāi)始吧,需要的朋友可以參考下2021-06-06

