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

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

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

IT培訓(xùn)班

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


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

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

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

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

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

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

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

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

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

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

姓名,語文,數(shù)學(xué),英語,理綜
劉婧,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)用程序之間表格信息的交換之中,它本身并無明確格式標(biāo)準(zhǔn),具體標(biāo)準(zhǔn)一般由傳輸雙方協(xié)商決定。


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

在Windows平臺中,CSV文件的后級名為.csv,此種文件可通過辦公軟件OfficeExcel或記事本打開。將以上示例中CSV格式的數(shù)據(jù)存儲到當(dāng)前路徑下的score.csv文件中,通過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()

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

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


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

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

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





猜你喜歡:

JSON是用來干嘛的?json格式是什么?

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

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

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

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

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