Python小數(shù)據(jù)保存分類種類有多少?

      網(wǎng)友投稿 908 2025-04-04

      一個(gè)扎心的觀點(diǎn)


      最近項(xiàng)目上的事情比較多,搞得人頭昏腦漲,好不容易下班了,想著怎么緩解下壓力。于是刷刷抖音,逛逛微博,再一看時(shí)間額11點(diǎn)了…

      忘記了之前在哪看過的一篇文章,世界上90%的財(cái)富,掌握在10%的人手中,那么如何穩(wěn)定那90%的人成了一個(gè)問題。然后,這10%的人想到了一個(gè)辦法,為大眾提供輕易就能獲取快樂、消磨時(shí)光的事物,讓他們覺得自己其實(shí)幸福指數(shù)爆棚。乍一聽覺得可笑,大眾那么容易糊弄嗎?可是,仔細(xì)想想貌似還挺有道理的,生活已經(jīng)如此苦逼了,我們刷刷社交平臺(tái),緩解了一天搬磚的苦逼心情,看看時(shí)間也該睡覺了,養(yǎng)足精神迎接明天的苦難…

      不知道為什么要說這么一堆話,只是覺得思細(xì)恐極,也想聽聽大家是什么感受,哈哈….

      小數(shù)據(jù)存儲(chǔ)

      我們?cè)诰帉懘a的時(shí)候,經(jīng)常會(huì)涉及到數(shù)據(jù)存儲(chǔ)的情況,如果是爬蟲得到的大數(shù)據(jù),我們會(huì)選擇使用數(shù)據(jù)庫,或者excel存儲(chǔ)。但如果只是一些小數(shù)據(jù),或者說關(guān)聯(lián)性較強(qiáng)且存在存儲(chǔ)后復(fù)用的數(shù)據(jù),我們?cè)撊绾未鎯?chǔ)呢?

      open保存文本

      最簡單、粗暴+無腦的存儲(chǔ)方式就是保存成一個(gè)文本文檔了。

      使用open函數(shù),將結(jié)果一行行的保存成文本,這里涉及的知識(shí)點(diǎn)只有簡單的幾條:

      文件讀寫模式,r 、w、a、b、+ ,掌握這幾種即可。

      使用單獨(dú)的open打開文件時(shí),需要注意結(jié)尾時(shí)的調(diào)用close()函數(shù)關(guān)閉文檔

      推薦使用上下文管理器的with open操作

      Python小數(shù)據(jù)保存分類種類有多少?

      csv文件

      之所以將csv與excel分開說,首先需要掃盲下,csv屬于特定格式的文本文件(使用逗號(hào)分隔),而excel是二進(jìn)制文件

      csv可以直接使用文本編輯器打開,excel不行…

      其實(shí)csv文件,完全可以使用open函數(shù)進(jìn)行保存,只要你將每行數(shù)據(jù)都使用,分隔開即可。

      另外,python自帶csv庫,可以很方便的操作與保存該數(shù)據(jù)

      xml文件

      xml文件的方式,已經(jīng)逐漸被淘汰了,為什么這么說?因?yàn)樗爆嵉臉湫谓Y(jié)構(gòu),導(dǎo)致了在傳輸過程中,占用了更多的內(nèi)存。所以,除非必要,真的不推薦以xml的形式存儲(chǔ)你的數(shù)據(jù)…

      configparser

      python模塊中configparser是一個(gè)專門用來保存配置文件的模塊庫,它非常適合保存一些具有關(guān)聯(lián)性的數(shù)據(jù)內(nèi)容,尤其是配置文件。通過定義section的方式,在section中添加key:value的方式,可以直觀明了的數(shù)據(jù)內(nèi)容。我之前專門寫了一篇關(guān)于它的文章,會(huì)附在公眾號(hào)的字文章中,喜歡的朋友可以去看看。

      pyyaml

      yaml類型的文件已經(jīng)成為很多Linux下的主流配置文件類型,比如Docker、Ansible等等都在使用yaml,但它依然不是一個(gè)主流的數(shù)據(jù)存儲(chǔ)方式,因?yàn)閥aml本身的格式要求太過嚴(yán)苛,比結(jié)構(gòu)化的Python格式更為嚴(yán)格,喜歡的朋友可以去研究下…

      pickle

      pickle模塊的使用面很窄,但不得不說還是有些人會(huì)使用,所以簡單說些它的優(yōu)劣:

      優(yōu)勢(shì):接口簡單(與json相似);存儲(chǔ)格式通用型,及在Windows、Linux等平臺(tái)下通用;二進(jìn)制存儲(chǔ),效率高

      劣勢(shì):pickle是python特定的協(xié)議,其他語言無法使用;pickle存在安全性,這個(gè)要著重說下,看下圖

      Json

      說了上面那么多,壓軸的還是Json

      首先相對(duì)于xml,現(xiàn)在更多的網(wǎng)站在數(shù)據(jù)傳輸中使用json格式,因?yàn)橥鹊淖止?jié)下,json傳輸數(shù)據(jù)的效率要更高于xml

      對(duì)于configparser,configparser有一個(gè)巨大的劣勢(shì),在于配置文件只能支持二維,section下定義option(key:value),如果想在option的value中再次定義列表、字典等數(shù)據(jù)類型,它只能識(shí)別為字符串,你需要將str手動(dòng)再轉(zhuǎn)化為對(duì)應(yīng)的數(shù)據(jù)類型

      而針對(duì)ymal,json沒有那么嚴(yán)格的格式要求,寫做一行還是換行展示都隨你,沒有那么嚴(yán)苛的要求。

      最后對(duì)比pickle,json格式是各種編程語言通用的數(shù)據(jù)格式,切由于是key value的鍵值對(duì),不存在loads之后的安全問題。

      三分鐘學(xué)會(huì)Json

      簡介

      JSON(JavaScript Object Notation, JS 對(duì)象簡譜) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript (歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

      至于推薦使用Json的理由:

      Json格式是一種通用的數(shù)據(jù)類型

      Python內(nèi)置json模塊,便于操作

      json格式類似與python的dict

      json的保存與讀取極為方便

      學(xué)習(xí)成本低,3分鐘包教包會(huì)

      類型、語法說明

      看到上圖的Python與json對(duì)比關(guān)系,其實(shí)差異并不大,我們只需要注意幾點(diǎn)即可:

      json的數(shù)據(jù)為key:value,且以逗號(hào)分隔,但注意json使用雙引號(hào)包裹鍵值對(duì)

      花括號(hào)中保存為對(duì)象,而方括號(hào)保存的是數(shù)組,不論python是list還是tuple,最終都會(huì)轉(zhuǎn)化為數(shù)組

      json由于是js引申的數(shù)據(jù)類型,所以在布爾表達(dá)式與空值上,使用與python不同,需要注意

      json的方法

      .dump():將python對(duì)象序列化到一個(gè)文件,是文本文件,相當(dāng)于將序列化后的json字符寫到一個(gè)文件

      .load():從文件反序列表出python對(duì)象

      json和pickle相同,都只有四個(gè)方法:

      .dumps():將python對(duì)象編碼為json的字符串

      .loads():將字符串編碼為一個(gè)python對(duì)象

      即:帶s的方法是數(shù)據(jù)類型間的轉(zhuǎn)化str <—> dict,不帶s的都是數(shù)據(jù)與文件的轉(zhuǎn)化

      實(shí)例

      在演示前,我們需要先定義一個(gè)初始化數(shù)據(jù):

      data?=?{ ????"in_use":?True, ????"info":?{ ????????"name_cn":?'清風(fēng)Python', ????????"name_en":?"BreezePython", ????}, ????"contents":?["Python",?"Java",?"Linux"] } .dumps()?.loads() import?json json.dumps(data) >>>?'{"in_use":?true,?"info":?{"name_cn":?"\\u6e05\\u98cePython",?"name_en":?"BreezePython"},?"contents":?["Python",?"Java",?"Linux"]}'

      這里大家看到一個(gè)問題,中文異常,此時(shí)我們需要添加參數(shù)ensure_ascii=False

      json.dumps(data,ensure_ascii=False)

      >>> '{"in_use": true, "info": {"name_cn": "清風(fēng)Python", "name_en": "BreezePython"}, "contents": ["Python", "Java", "Linux"]}'

      # 當(dāng)然我們可以美觀的打印它

      json_data?=?json.dumps(data,?sort_keys=True,?indent=4,?separators=(',',?':?'),ensure_ascii=False) print(json_data) >>>?{ ????"contents":?[ ????????"Python", ????????"Java", ????????"Linux" ????], ????"in_use":?true, ????"info":?{ ????????"name_cn":?"清風(fēng)Python", ????????"name_en":?"BreezePython" ????} }

      # 了解了dumps,loads就比較簡單了...

      json.loads(json_data) {'contents':?['Python',?'Java',?'Linux'],?'in_use':?True,?'info':?{'name_cn':?'清風(fēng)Python',?'name_en':?'BreezePython'}} .dump()?.load() import?json #?先來看看dump將數(shù)據(jù)保存至文本 with?open('data.json',?'w',?encoding='utf-8')?as?f: ????json.dump(data,?f,?indent=4) ????#?同理我們還可以使用dumps完成寫入操作 ????#?f.write(json.dumps(data,?indent=4)) #?保存了文本,我們?cè)谕ㄟ^load讀取出來 with?open('data.json',?'r',?encoding='utf-8')?as?f: ????data?=?json.load(f) ????#?同理我們還可以使用loads完成讀取操作 ????#?data?=?json.loads(f.read()) print(data) >>>?{'in_use':?True,?'info':?{'name_cn':?'清風(fēng)Python',?'name_en':?'BreezePython'},?'contents':?['Python',?'Java',?'Linux']}

      看到這里,你是否發(fā)現(xiàn),即便不會(huì)dump和load我們一樣可以使用dumps和loads替換前兩者,完成讀寫操作。三分鐘學(xué)會(huì)了json的操作,并且買一送一附帶學(xué)會(huì)了pickle的操作。你是否get到?

      The End

      本文來自“清風(fēng)Python”公眾號(hào)

      智能數(shù)據(jù) python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:《Hadoop權(quán)威指南:大數(shù)據(jù)的存儲(chǔ)與分析》—3 Hadoop分布式文件系統(tǒng)
      下一篇:excel2003計(jì)算比例的教程
      相關(guān)文章
      亚洲精品在线播放| 红杏亚洲影院一区二区三区| 国产亚洲欧洲精品| 亚洲av麻豆aⅴ无码电影| 亚洲精品综合在线影院| 亚洲AV色吊丝无码| 亚洲一级毛片视频| 国产成人精品日本亚洲专一区| 亚洲欧洲日产v特级毛片| 亚洲福利电影一区二区?| 亚洲四虎永久在线播放| 亚洲人成在线电影| 亚洲一区综合在线播放| 久久久久亚洲av无码专区喷水 | 亚洲国产精品自在线一区二区 | 亚洲a∨国产av综合av下载| 亚洲国产精品嫩草影院| 亚洲人成色777777精品| 亚洲精品无码久久久久秋霞| 亚洲国产精品日韩av不卡在线| 日韩在线视精品在亚洲| 亚洲国产成人VA在线观看 | 亚洲精品熟女国产| 亚洲三级中文字幕| 亚洲最大无码中文字幕| 久久久久亚洲AV无码去区首| 国产亚洲福利精品一区二区| 亚洲国产高清精品线久久| 亚洲一区无码精品色| 国产偷v国产偷v亚洲高清| 亚洲αv在线精品糸列| 久久久久久亚洲精品成人| 亚洲午夜久久久久久尤物| 亚洲最大福利视频| 亚洲av色香蕉一区二区三区| 亚洲精品无码专区2| 精品亚洲综合在线第一区| 91亚洲导航深夜福利| 精品久久久久久亚洲精品| 亚洲精品无码久久久久YW| 亚洲欧洲自拍拍偷精品 美利坚|