Python3.5 Json與pickle實現(xiàn)數(shù)據(jù)序列化與反序列化操作示例
本文實例講述了Python3.5 Json與pickle實現(xiàn)數(shù)據(jù)序列化與反序列化操作。分享給大家供大家參考,具體如下:
1、Json:不同語言之間進(jìn)行數(shù)據(jù)交互。
(1)JSON數(shù)據(jù)序列化:dumps()
JSON數(shù)據(jù)是一種輕量級的數(shù)據(jù)交換格式,序列化:將內(nèi)存數(shù)據(jù)對象變成字符串。
#!/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()
運行結(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'])
運行結(jié)果 :
25
(3)Json序列化——多次dumps;反序列化——不能實現(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()
運行結(jié)果:

總結(jié):Json只能處理一些簡單的數(shù)據(jù)類型,如:列表、字典。字符串等。XML正在被Json逐步取代。
Json以后使用只dumps一次,loads一次即可。
2、pickle:通過pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\行的對象信息保存到文件中去,永久存儲;
通過pickle模塊的反序列化操作,我們能夠從文件中創(chuàng)建上一次程序保存的對象。
只能在Python語言中用,不能用于其他的語言。
(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()
運行結(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"))
運行結(jié)果:
hello liu
None
PS:這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
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文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python序列化模塊之pickle與json詳解
- Python常用標(biāo)準(zhǔn)庫詳解(pickle序列化和JSON序列化)
- Python 對象序列化與反序列化之pickle json詳細(xì)解析
- Python 解析庫json及jsonpath pickle的實現(xiàn)
- Python標(biāo)準(zhǔn)庫json模塊和pickle模塊使用詳解
- Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)詳解
- Python序列化基礎(chǔ)知識(json/pickle)
- 簡單談?wù)凱ython中的json與pickle
- 詳解Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)
- Python序列化模塊JSON與Pickle
相關(guān)文章
Win8.1下安裝Python3.6提示0x80240017錯誤的解決方法
這篇文章主要為大家詳細(xì)介紹了Win8.1下安裝Python3.6提示0x80240017錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
python利用joblib進(jìn)行并行數(shù)據(jù)處理的代碼示例
在數(shù)據(jù)量比較大的情況下,數(shù)據(jù)預(yù)處理有時候會非常耗費時間,可以利用 joblib 中的 Parallel 和 delayed 進(jìn)行多CPU并行處理,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-10-10
ConvNeXt實戰(zhàn)之實現(xiàn)植物幼苗分類
ConvNeXts由標(biāo)準(zhǔn)ConvNet模塊構(gòu)建,在準(zhǔn)確性和可擴(kuò)展性方面與 Transformer競爭,實現(xiàn)87.8% ImageNet top-1 準(zhǔn)確率,在 COCO 檢測和 ADE20K 分割方面優(yōu)于 Swin Transformers。本文將利用ConvNeXt實現(xiàn)植物幼苗分類,需要的可以參考一下2022-01-01
Ubuntu16安裝CUDA(9.1)和cuDNN的實現(xiàn)步驟(圖文)
本文主要介紹了Ubuntu16安裝CUDA(9.1)和cuDNN,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07

