首頁(yè)技術(shù)文章正文

如何存儲(chǔ)與讀寫(xiě)不同維度的數(shù)據(jù)?

更新時(shí)間:2021-11-17 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

程序中與數(shù)據(jù)相關(guān)的操作分為數(shù)據(jù)的存儲(chǔ)與讀寫(xiě)。下面將對(duì)如何存儲(chǔ)與讀寫(xiě)不同維度的數(shù)據(jù)進(jìn)行講解。


1.數(shù)據(jù)存儲(chǔ)

數(shù)據(jù)通常存儲(chǔ)在文件之中,為了方便后續(xù)的讀寫(xiě)操作,數(shù)據(jù)通常需要按照約定的組織方式進(jìn)行存儲(chǔ)。一維數(shù)據(jù)呈線性排列,一般用特殊字符分隔,具體示例如下。

(1)使用空格分隔:成都 杭州 重慶 武漢 蘇州 西安 天津

(2)使用逗號(hào)分隔:成都,杭州,重慶,武漢,蘇州,西安,天津

(3)使用&分隔:成都&杭州&重慶&武漢&蘇州&西安&天津

如上所示,在存儲(chǔ)一維數(shù)據(jù)時(shí)可使用不同的特殊字符分隔數(shù)據(jù)元素,但有幾點(diǎn)需要注意。

(1)同一文件或同組文件一般使用同一分隔符分隔。

(2)分隔數(shù)據(jù)的分隔符不應(yīng)出現(xiàn)在數(shù)據(jù)中。

(3)分隔符為英文半角符號(hào),一般不使用中文符號(hào)作為分隔符。

二維數(shù)據(jù)可視為多條一維數(shù)據(jù)的集合,當(dāng)二維數(shù)據(jù)只有一個(gè)元素時(shí),這個(gè)二維數(shù)據(jù)就是一維數(shù)據(jù)。國(guó)際上通用的一二維數(shù)據(jù)存儲(chǔ)格式為CSV(Commae-Separeted Values,逗號(hào)分隔值),CSV文件以純文本形式存儲(chǔ)表格數(shù)據(jù),文件的每一行對(duì)應(yīng)表格中的一條數(shù)據(jù)記錄,每條記錄由一個(gè)或多個(gè)字段組成,字段之間使用逗號(hào)(英文、半角)分隔。因?yàn)樽侄沃g可能使用除逗號(hào)外的其他分隔符,所以CSV也稱(chēng)為字符分隔值。具體示例如下:

姓名,語(yǔ)文,數(shù)學(xué),英語(yǔ),理綜
劉婧,124,137,145,260
張華,116,143,139,263
邢昭林,120,130,148,255
鞠依依,115,145,131,240
黃麗萍,123,108,121,235
趙越,132,100,112,210

CSV廣泛應(yīng)用于不同體系結(jié)構(gòu)下網(wǎng)絡(luò)應(yīng)用程序之間表格信息的交換之中,它本身并無(wú)明確格式標(biāo)準(zhǔn),具體標(biāo)準(zhǔn)一般由傳輸雙方協(xié)商決定。


2.數(shù)據(jù)讀取

在Windows平臺(tái)中,CSV文件的后級(jí)名為.csv,此種文件可通過(guò)辦公軟件OfficeExcel或記事本打開(kāi)。將以上示例中CSV格式的數(shù)據(jù)存儲(chǔ)到當(dāng)前路徑下的score.csv文件中,通過(guò)Python程序讀取該文件中的數(shù)據(jù)并以列表形式打印,具體代碼如下:

csv file = open('score.csv')
lines = []
for line in csv_file:
line = line.replace ('\n', '')
lifs.append (line.split(','))
print(lines)
csv_file.close()

以上程序打開(kāi)文件score.csv后通過(guò)對(duì)文件對(duì)象進(jìn)行迭代,在循環(huán)中逐條獲取文中的記錄,根據(jù)分隔符“,”切割記錄,將記錄存儲(chǔ)到了Python列表 lines之中,最后在終端打印了列表lines。執(zhí)行程序,程序的執(zhí)行結(jié)果如下:

號(hào)“:”分隔;其次value本身是一個(gè)數(shù)組,該數(shù)組中存儲(chǔ)了多名學(xué)生的成績(jī),通過(guò)方括號(hào)組織,其中的元素通過(guò)分號(hào)“;”分隔;作為數(shù)組元素的學(xué)生成績(jī)的每項(xiàng)屬性亦為鍵值對(duì),每項(xiàng)屬性通過(guò)逗號(hào)“,”分隔。


除JSON外,網(wǎng)絡(luò)平臺(tái)也會(huì)使用XML、HTML等格式組織多維數(shù)據(jù)。XML和HTML格式通過(guò)標(biāo)簽組織數(shù)據(jù)。例如將學(xué)生成績(jī)以XML格式存儲(chǔ),具體格式如下:

<高三二班考試成績(jī)>
<姓名>陳誠(chéng)</姓名><語(yǔ)文>124</語(yǔ)文><數(shù)學(xué)>127<數(shù)學(xué)/><英語(yǔ)>145<英語(yǔ)/>
<理綜>259<理綜/>
<姓名>黃思</姓名><語(yǔ)文>116</語(yǔ)文><數(shù)學(xué)>143<數(shù)學(xué)/><英語(yǔ)>119<英語(yǔ)/>
<理綜>273<理綜/> 
        ......
</高三二班考試成績(jī)>

對(duì)比JSON格式與XML、HTML格式可知,JSON格式更為直觀,且數(shù)據(jù)屬性的key只需存儲(chǔ)一次,在網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換時(shí)耗費(fèi)的流量更小。





猜你喜歡:

JSON是用來(lái)干嘛的?json格式是什么?

Python中如何將數(shù)組轉(zhuǎn)為Json格式數(shù)據(jù)?

HBase數(shù)據(jù)庫(kù)物理存儲(chǔ)的存儲(chǔ)方式介紹【大數(shù)據(jù)文章】

Python如何一行一行讀取txt文件?

黑馬程序員python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!