小猿圈python學(xué)習(xí)-序列化pickle&json模塊

什么叫序列化?

序列化是指把內(nèi)存里的數(shù)據(jù)類(lèi)型轉(zhuǎn)變成字符串,以使其能存儲(chǔ)到硬盤(pán)或通過(guò)網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程,因?yàn)橛脖P(pán)或網(wǎng)絡(luò)傳輸時(shí)只能接受bytes

為什么要序列化嗽元?

你打游戲過(guò)程中钾挟,打累了洁灵,停下來(lái),關(guān)掉游戲掺出、想過(guò)2天再玩徽千,2天之后,游戲又從你上次停止的地方繼續(xù)運(yùn)行汤锨,你上次游戲的進(jìn)度肯定保存在硬盤(pán)上了双抽,是以何種形式呢?游戲過(guò)程中產(chǎn)生的很多臨時(shí)數(shù)據(jù)是不規(guī)律的闲礼,可能在你關(guān)掉游戲時(shí)正好有10個(gè)列表牍汹,3個(gè)嵌套字典的數(shù)據(jù)集合在內(nèi)存里,需要存下來(lái)柬泽?你如何存慎菲?把列表變成文件里的多行多列形式?那嵌套字典呢锨并?根本沒(méi)法存露该。所以,若是有種辦法可以直接把內(nèi)存數(shù)據(jù)存到硬盤(pán)上第煮,下次程序再啟動(dòng)解幼,再?gòu)挠脖P(pán)上讀回來(lái),還是原來(lái)的格式的話包警,那是極好的撵摆。

用于序列化的兩個(gè)模塊

json,用于字符串 和 python數(shù)據(jù)類(lèi)型間進(jìn)行轉(zhuǎn)換

pickle害晦,用于python特有的類(lèi)型 和 python的數(shù)據(jù)類(lèi)型間進(jìn)行轉(zhuǎn)換

pickle模塊提供了四個(gè)功能:dumps特铝、dump、loads、load

import pickle

data = {'k1':123,'k2':'Hello'}

# pickle.dumps 將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換位只有python語(yǔ)言認(rèn)識(shí)的字符串

p_str = pickle.dumps(data)? # 注意dumps會(huì)把數(shù)據(jù)變成bytes格式

print(p_str)

# pickle.dump 將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換位只有python語(yǔ)言認(rèn)識(shí)的字符串鲫剿,并寫(xiě)入文件

with open('result.pk',"wb") as fp:

? ? pickle.dump(data,fp)

# pickle.load? 從文件里加載

f = open("result.pk","rb")

d = pickle.load(f)

print(d)

Json模塊也提供了四個(gè)功能:dumps痒芝、dump、loads牵素、load严衬,用法跟pickle一致

import json

# json.dumps 將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換位所有程序語(yǔ)言都認(rèn)識(shí)的字符串

j_str = json.dumps(data) # 注意json dumps生成的是字符串,不是bytes

print(j_str)

#dump入文件

with open('result.json','w') as fp:

? ? json.dump(data,fp)

#從文件里load

with open("result.json") as f:

? ? d = json.load(f)

? ? print(d)

json vs pickle:

JSON:

優(yōu)點(diǎn):跨語(yǔ)言(不同語(yǔ)言間的數(shù)據(jù)傳遞可用json交接)笆呆、體積小

缺點(diǎn):只能支持int\str\list\tuple\dict

Pickle:

優(yōu)點(diǎn):專(zhuān)為python設(shè)計(jì)请琳,支持python所有的數(shù)據(jù)類(lèi)型

缺點(diǎn):只能在python中使用,存儲(chǔ)數(shù)據(jù)占空間大

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赠幕,一起剝皮案震驚了整個(gè)濱河市俄精,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榕堰,老刑警劉巖竖慧,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逆屡,居然都是意外死亡圾旨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)魏蔗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砍的,“玉大人,你說(shuō)我怎么就攤上這事莺治±希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵谣旁,是天一觀的道長(zhǎng)床佳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)榄审,這世上最難降的妖魔是什么砌们? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮瘟判,結(jié)果婚禮上怨绣,老公的妹妹穿的比我還像新娘角溃。我一直安慰自己拷获,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布减细。 她就那樣靜靜地躺著匆瓜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驮吱,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天茧妒,我揣著相機(jī)與錄音,去河邊找鬼左冬。 笑死桐筏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拇砰。 我是一名探鬼主播梅忌,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼除破!你這毒婦竟也來(lái)了牧氮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瑰枫,失蹤者是張志新(化名)和其女友劉穎踱葛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體光坝,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尸诽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盯另。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逊谋。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖土铺,靈堂內(nèi)的尸體忽然破棺而出胶滋,到底是詐尸還是另有隱情,我是刑警寧澤悲敷,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布究恤,位于F島的核電站,受9級(jí)特大地震影響后德,放射性物質(zhì)發(fā)生泄漏部宿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一瓢湃、第九天 我趴在偏房一處隱蔽的房頂上張望理张。 院中可真熱鬧,春花似錦绵患、人聲如沸雾叭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)织狐。三九已至暂幼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間移迫,已是汗流浹背旺嬉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留厨埋,地道東北人邪媳。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像荡陷,于是被迫代替她去往敵國(guó)和親悲酷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 常用模塊 認(rèn)識(shí)模塊 什么是模塊 什么是模塊? 常見(jiàn)的場(chǎng)景:一個(gè)模塊就是一個(gè)包含了python定義和聲明的文件蛹头,文...
    go以恒閱讀 1,954評(píng)論 0 6
  • pyton review 學(xué)習(xí)指南 https://www.zhihu.com/question/29138020...
    孫小二wuk閱讀 1,051評(píng)論 0 2
  • 高階函數(shù):將函數(shù)作為參數(shù) sortted()它還可以接收一個(gè)key函數(shù)來(lái)實(shí)現(xiàn)自定義的排序,reversec參數(shù)可反...
    royal_47a2閱讀 689評(píng)論 0 0
  • 第三部分:成長(zhǎng)與宗教 宗教與世界觀 一個(gè)人的宗教信仰或世界觀顿肺,只有局部屬于意識(shí)思維層面。多數(shù)病人無(wú)法體驗(yàn)到自己的潛...
    淡泊人生的智慧閱讀 544評(píng)論 0 0
  • 1.Elasticsearch介紹和安裝 用戶訪問(wèn)我們的首頁(yè)渣蜗,一般都會(huì)直接搜索來(lái)尋找自己想要購(gòu)買(mǎi)的商品屠尊。 而商品的...
    強(qiáng)某某閱讀 570評(píng)論 1 1