教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Python一二維數(shù)據(jù)的存儲與讀寫

更新時間:2021年11月18日09時28分 來源:黑馬程序員 瀏覽次數(shù):

好口碑IT培訓

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


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

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

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

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

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

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

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

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

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

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

姓名,語文,數(shù)學,英語,理綜
劉婧,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廣泛應用于不同體系結構下網絡應用程序之間表格信息的交換之中,它本身并無明確格式標準,具體標準一般由傳輸雙方協(xié)商決定。


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

在Windows平臺中,CSV文件的后級名為.csv,此種文件可通過辦公軟件OfficeExcel或記事本打開。將以上示例中CSV格式的數(shù)據(jù)存儲到當前路徑下的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后通過對文件對象進行迭代,在循環(huán)中逐條獲取文中的記錄,根據(jù)分隔符“,”切割記錄,將記錄存儲到了Python列表 lines之中,最后在終端打印了列表lines。執(zhí)行程序,程序的執(zhí)行結果如下:

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


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

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

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



猜你喜歡:

Python是怎樣定位和修改文件讀寫位置的?

HDFS讀寫流程介紹,HDFS讀數(shù)據(jù)和寫數(shù)據(jù)的原理是什么?

Spark SQL通過JDBC連接MySQL讀寫數(shù)據(jù)

HBase讀寫數(shù)據(jù)分幾步?具體是怎樣操作的?

傳智教育python+大數(shù)據(jù)開發(fā)培訓

0 分享到:
和我們在線交談!