Python編程基礎與應用第10章 文件與數據格式化_第1頁
Python編程基礎與應用第10章 文件與數據格式化_第2頁
Python編程基礎與應用第10章 文件與數據格式化_第3頁
Python編程基礎與應用第10章 文件與數據格式化_第4頁
Python編程基礎與應用第10章 文件與數據格式化_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

10

文件與數據格式化XXXX

大學XX

學院XXX

教授2學習目標:熟悉字符編碼掌握文件操作熟悉數據存儲格式思政內涵:通過對字符編碼、文件安全的學習,廣大學子要增強數據安全、網絡安全和國家安全意識。0

文件與數據格式化310.1 文件文件概述文件定義文件在計算機中應用廣泛,計算機中的文件是以硬盤等外部介質為載體,存儲在計算機中的數據的集合,文本文檔、圖片、程序、音頻等都是文件。計算機中的每個文件都有唯一確定的標識,以便識別和引用文件。文件標識分為路徑、文件名主干和擴展名

3

個部分,Windows

操作系統中一個文件的完整標識如下。D:\python\chapter11\example.py操作系統以文件為單位對數據進行管理,若想找到存放在外部介質上的數據,就必須先按照文件標識找到指定的文件,再從文件中讀取數據。根據以上文件完整標識,可以找到

Windows

操作系統D:\python\chapter11

路徑下文4件名主干為example、擴展名為.py

的Python

源代碼文件。根據數據的邏輯存儲結構,人們將計算機中的文件分為文本文件和二進制文件。文本文件專門用于存儲文本字符數據,若一個文件中沒有包含除文本字符外的其他數據,就認為它是一個文本文件。文本文件可以直接使用文字處理程序(如記事本)打開并正常閱讀。二進制文件是人們根據計算機中數據的邏輯存儲結構為文件劃分的類別之一,計算機中存儲的圖像、音頻、視頻、可執行文件等都屬于二進制文件,這類文件不能直接使用文字處理程序正常讀寫,必須使用專用程序才能正確獲取文件信息。本質上,計算機中的數據在物理層面都是以二進制形式存儲的。Python

與其他編程語言一樣,也具有操作文件(I/O)的能力,如打開文件、讀取和追加數據、插入和刪除數據、關閉文件、刪除文件等。0

文件與數據格式化52.

字符編碼字符編碼就是將中文、英文等符號映射成數字,然后將數字轉換為計算機能存儲的二進制數。常見的編碼有

ASCII

編碼、GB2312

編碼、GBK

編碼、unicode

編碼和UTF-8

編碼。

ASCII

編碼由于計算機是美國人發明的,因此最初只有

127

個字符被編碼到計算機里,包括大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII

編碼,用單字節的二進制位表示。例如,大寫字母A

的編碼是

65,小寫字母z

的編碼是122。當編程只涉及英文字符或數字,不涉及中文字符時,可以使用

ASCII

編碼。

GB2312

編碼與GBK

編碼當用計算機處理中文字符時,顯然一個字節的編碼是不夠的,至少需要兩個字節,而且還不能和ASCII

編碼沖突,因此,中國制定了GB2312

編碼,用來把中文編進去。GB

為國標,GBK

表示國標擴展。GB2312

兼容ASCII

編碼,6對于ASCII

可以表示的字符(如英文字符A、B

等),在

GB2312

中的編碼和ASCII編碼一致,占一個字節;對于ASCII

不能表示的字符,GB2312

用兩個字節表示,且最高位不為

0,避免與ASCII

字符沖突。例如,字母A

在GB2312

中存儲的字節十六進制為

41,在ASCII

中也是

41,中文字符“中”在GB2312

中存儲的兩個字節十六進制為D6D0,最高位為

1

不為

0。GB2312

只收錄了

6763

個漢字,GBK

屬于GB2312

的擴展,增加了很多漢字,支持繁體字,同時兼容GB2312,同樣用兩個字節表示非ASCII

字符。3)

unicode

編碼世界上的語言很多,如果各自采用獨立的編碼方式,就很容易出現亂碼問題。unicode

可以把所有語言都統一到一套編碼中,從而解決了亂碼問題。unicode

將世界上的所有字符映射為唯一的數字。然而,unicode

數字并不能直接轉換為二進制存儲。有兩種方法可以將unicode

數字轉換為二進制位的映射:一種是將每個unicode

數字用固定寬度的二進制位表示,如都用兩個字節0

文件與數據格式化7表示,由此產生了ASCII、GB2312、GBK

編碼,例如,字母A

的ASCII

編碼是十進制的

65,對應的二進制表示為

01000001,而在

unicode

編碼中,只需要在前面補

0

就可以,因此,A

的unicode

編碼是

00000000

01000001;另一種是存儲的二進制位除了表示數字之外,還表示每個unicode

數字的長度,由此產生了UTF-8

編碼。4)

UTF-8

編碼UTF(unicode

transformation

format,統一碼轉換格式)是為

unicode

編碼設計的一種在存儲和傳輸時節省空間的編碼方案,主要包括

UTF-32、UTF-16和UTF-8。UTF-32

使用

4

個字節表示所有字符;UTF-16

使用

2、4

個字節表示所有字符,優先使用

2

個字節,如果無法表示則使用

4

個字節;UTF-8

使用1、2、3、4

個字節表示所有字符,優先使用

1

個字節,若無法滿足則增加一個字節,最多

4

個字節,英文占

1

個字節、歐洲語系字符占

2

個字節、東亞字符占

3

個字節,其他及特殊字符占

4

個字節。UTF-8

編碼把unicode

編碼轉換為8“可變長編碼”,常用的英文字母被編碼成

1

個字節,漢字通常是

3

個字節。當傳輸的文本包含大量英文字符時,用UTF-8

編碼可以有效地節省空間。在計算機內存中,統一使用unicode

編碼,當需要保存到硬盤或進行傳輸時,就轉換為UTF-8

編碼。字母“A”和中文“中”的編碼如表

10-1

所示。表

10-1 字母“A”和中文“中”的編碼字符ASCIIunicodeUTF-8A01000001000000000100000101000001中x010011100010110111100100

1011100010101101Python

編碼及其轉換的示例代碼如程序段P10.1

所示。0

文件與數據格式化9P10.1

字符編碼# ord

獲取字符的unicode

十進制編碼# 輸出十進制編碼# 輸出二進制編碼# ord

獲取字符的unicode

十進制編碼# 輸出十進制編碼#輸出二進制編碼m=ord('A')print(m)print(bin(m))n=ord('中')print(n)print(bin(n))print(chr(65))print(chr(20013))運行代碼,輸出結果如下。650b100000110200130b100111000101101A中文件打開與關閉open

打開文件在對文件進行操作之前,需要把文件從硬盤讀取到內存中,并指定文件放在內存的哪個位置,這就是文件的打開。Python

中通過內置函數open()打開文件,實際上通過open()函數創建了文件對象,該函數的語法格式如下。open(file,mode='r',encoding=None)open()函數中的參數file

用于接收文件名或文件路徑;參數

encoding

用0

文件與數據格式化11于指定文件的編碼格式;參數mode

用于設置文件的打開模式,常用的打開模式有r、w、a,這些模式的含義分別如下。

r:以只讀的方式打開文件,參數mode

的默認值。w:以只寫的方式打開文件。a:以追加的方式打開文件。以上模式可以單獨使用,也可以與模式

b、模式+搭配使用。其中,模式

b表示以二進制方式打開文件,模式+表示以更新的方式打開文件。常用的文件打開模式及其搭配如表

10-2

所示。表

10-2 常用的文件打開模式及其搭配打開模式名稱功能描述t文本模式

(默認)以文本文件方式打開文件b二進制模式以二進制文件方式打開文件12r/rb只讀模式(默認)以只讀方式打開文件,文件指針放在文件的開頭w/wb只寫模式如果該文件已存在則打開文件,并從頭開始編輯,原有內容會被刪除。如果該文件不存在,則創建新文件a/ab追加模式如果該文件已存在,文件指針放在文件結尾,新的內容會被寫入已有內容之后。如果該文件不存在,則創建新文件進行寫入r+/rb+讀取(更新)模式以讀/寫方式打開文件,若文件不存在,則打開文件失敗w+/wb+寫入(更新)模式以讀/寫方式打開文件,若文件已存在,則重寫文件a+/ab+追加(更新)模式以讀/寫方式打開文件,只允許在末尾追加數據,若文件不存在,則創建新文件0

文件與數據格式化13若

open()函數調用成功,則返回一個文件對象,文件對象具有與該文件相關的屬性和方法,可以查看文件對象的屬性,并可用文件對象方法操作文件。文件對象的相關屬性如表

10-3

所示。表

10-3 文件對象的相關屬性屬性功能描述name打開文件的名稱mode打開文件的訪問模式closed文件關閉則返回True,否則返回False2.

close

關閉文件在打開并操作完文件之后,就應該及時將其關閉,否則程序的運行可能會出現問題。文件對象的

close()方法用于刷新任何未寫入的信息并關閉文件對象,之后便不能再進行寫入操作。當文件的引用對象重新分配給另一個文件時,14Python

也會自動關閉一個文件,但使用close()方法關閉文件是良好的編程習慣。通過文件對象的close()方法關閉文件的語法格式如下。file_object.close()其中,file_object

是文件對象。打開與關閉文件的示例代碼如程序段

P10.2所示。P10.2

打開與關閉文件f=open("test.txt",

"w")f.write("Pythonisagreat

language.")print()print(f.mode)print(f.closed)f.close()0

文件與數據格式化15print(f.closed)運行代碼,輸出結果如下。test.txtwFalseTrue程序執行后,輸出了文件的名稱、打開方式及是否關閉等信息,在當前文件目錄下會創建test.txt

文件,用記事本打開文件,可以看到以下文件內容。Pythonisagreat

language.3.

with-as

語句打開/關閉文件在任何一門編程語言中,文件的輸入輸出都是很常見的資源管理操作。但16資源是有限的,必須保證資源在使用過后得到釋放,不然就容易造成資源泄露,輕則使得系統處理緩慢,嚴重時會使系統崩潰。前面介紹的close()關閉文件操作,如果在打開文件或文件操作過程中拋出了異常,則無法及時關閉文件。在Python

中,對應的解決方式是使用

with-as

語句操作上下文管理器(contextmanager),它能夠自動分配并釋放資源。然而,并不是所有的對象都可以使用with

語句,只有支持上下文管理協議的對象才可以。目前,支持該協議的對象有文件(file)、線程(threading)等。上下文管理器就是包含

enter

()和

exit

()方法的對象,使用with-as打開的文件對象就是一個上下文管理器,無論期間是否拋出異常,都能保證with-as

語句執行完畢后自動關閉已經打開的文件。with-as

語句的語法格式如下。with

表達式

[as

target]:代碼塊0

文件與數據格式化17其中,target

參數用于指定一個變量,該語句會將表達式指定的結果保存到該變量中,其中的代碼塊如果不想執行任何語句,則可以直接使用pass

語句代替。示例代碼如程序段P10.3

所示。P10.3

with-as

語句打開文件withopen("test.txt","w")as

f:f.write("Pythonisagreat

language.")print()print(f.mode)print(f.closed)print(f.closed)運行代碼,輸出結果如下。test.txt18wFalseTrue程序執行后,在with-as

代碼塊中輸出的文件對象屬性顯示未關閉,退出代碼塊后輸出的文件對象屬性顯示文件已關閉。with-as

語句預定義了清理操作,實現了文件的自動關閉。4.

上下文管理器前面在介紹with

語句時,提到了一個非常重要的概念——上下文管理器。使用with

語句的前提就是要有上下文管理器。上下文管理器用于規定某個對象的使用范圍,一旦進入或離開使用范圍,就會有特殊的操作被調用。1)

上下文管理協議上下文管理協議包含

enter

()和

exit

()方法,支持該協議的對象要實0

文件與數據格式化19現這兩個方法。關于這兩個方法的介紹如下。

enter

(self):在進入上下文管理器時調用此方法,其返回值被放入with-as

語句中as

說明符指定的變量中。

exit

(self,type,value,tb):在離開上下文管理器時調用此方法。如果出現了異常,則type、value、tb

分別為異常的類型、值和追蹤信息;如果沒有出現異常,3

個參數均設為None。此方法返回值為

True

或False,分別指示被引發的異常有沒有得到處理,如果返回False,則引發的異常會被傳遞出上下文。2)

上下文管理器原理上下文管理器是指支持上下文管理協議的對象,用于實現

enter

()和

exit

()方法。上下文管理器定義了執行with

語句時要建立的運行時上下文,負責執行with

語句塊上下文中的進入與退出操作。3)

運行時上下文20運行時上下文是指代碼執行的環境和狀態信息。由上下文管理協議的對象通過

enter

()方法進入上下文,通過

exit

()方法退出上下文。4)

上下文表達式上下文表達式是指with

語句中位于關鍵字with

之后的表達式,該表達式要返回一個支持上下文管理協議的對象。在了解了上下文管理器之后,就能很好地理解with

語句的整個執行過程了,具體如下。首先執行上下文表達式,生成一個上下文管理器對象。調用上下文管理器的

enter

()方法,如果使用了as

子句,就把

enter

()方法的返回值賦值給as

子句中的資源對象。執行with

語句包裹的代碼塊。無論在執行的過程中是否發生異常,都會執行上下文管理器的

exit

()方法,該方法負責執行程序的“清理”工作,如釋放資源等。0

文件與數據格式化21(5)

如果在執行的過程中沒有出現異常,或者代碼中執行了break、continue

或return

語句,則以None

作為參數調用

exit

()方法;如果在執行的過程中出現了異常,則會使用sys.exc_info

得到的異常信息作為參數調用

exit

()方法。(6)

在出現異常時,如果

exit

()方法返回的結果為False,則會重新拋出異常,讓

with

之外的語句邏輯來處理異常,這是通用做法;如果返回

True,則忽略異常,不再對異常進行處理。在開發中,也可以自己定義上下文管理器,只需要讓它支持上下文管理協議,并實現該協議規定的

enter

()和

exit

()方法即可。示例代碼如程序段P10.4

所示。P10.4

自定義上下文管理器class

MyContext(object):def

enter

(self):22print('

enter

()

called')return

selfdef

description(self):print('mynameis

MyContestManager')def

exit

(self,e_t,e_v,t_b):print('

exit

()

called')withMyContext()as

a:a.description()print('ais

called')運行代碼,輸出結果如下。

enter

()

calledmynameis

MyContestManager0

文件與數據格式化23ais

called

exit

()

called從輸出結果可知,使用

with

語句,在生成上下文管理器之后,先調用了該對象的

enter

()

方法,然后執行語句體,最后執行上下文管理器的

exit

()方法。10.1.3 文件讀寫Python

提供了一系列操作文件的方法,表

10-4

列出了文件的常用操作方法。表

10-4 文件的常用操作方法方法功能描述read()從文件讀取指定的字節數,如果未給定或為負則讀取所有readline()讀取整行,包括

"\n"

字符24readlines()讀取所有行并返回列表write()將字符串寫入文件,返回的是寫入的字符長度writelines()向文件寫入一個序列字符串列表,如果需要換行則要加入每行的換行符tell()返回文件當前位置seek()移動文件讀取指針到指定位置flush()刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件isatty()如果文件連接到一個終端設備則返回True,否則返回

Falseclose()關閉文件下面介紹使用有關方法對文件的操作。1.

寫文件1)

write()方法0

文件與數據格式化25write()方法用于將指定字符串寫入文件,其語法格式如下。write(data)其中,參數data

表示要寫入文件的數據,若數據寫入成功,則write()方法會返回本次寫入文件的數據的字節數。示例代碼如程序段P10.5

所示。P10.5

write()方法寫文件string="Pythonisagreatlanguage.\nYeahits

great!!\n"withopen("test.txt","w")as

f:size=f.write(string)print(size)運行代碼,輸出結果如下。45字符串數據被成功寫入文件,此時打開

test.txt

文件,可在文件中看到該字26符串。2)

writelines()方法writelines()方法用于將行列表寫入文件,其語法格式如下。writelines(lines)其中,參數

lines

表示要寫入文件中的數據,可以是一個字符串或字符串列表。若寫入文件的數據在文件中需要換行,則應顯示指定換行符。示例代碼如程序段P10.6

所示。P10.6

writelines()方法寫文件string="Pythonisagreatlanguage.\nYeahits

great!!\n"withopen("test.txt","w")as

f:size=f.writelines(string)print(size)0

文件與數據格式化27運行代碼,輸出信息None,字符串被成功寫入文件。此時打開

test.txt文件,可在文件中看到寫入的字符串。2.

讀文件1)

read()方法read()方法用于從指定文件中讀取指定字節的數據,其語法格式如下。read(n=-1)其中,參數n

用于設置讀取數據的字節數,若未提供或設置為-1,則一次讀取并返回文件中的所有數據。以文件file.txt

為例,假設文件中的內容如下。Pythonisagreat

language.Yeahits

great!!讀取該文件中指定長度數據的示例代碼如程序段P10.7

所示。28P10.7

read()方法讀文件withopen('file.txt',mode='r')as

f:print(f.read(2))print(f.read())運行代碼,輸出結果如下。Pythonisagreat

language.Yeahits

great!!2)

readline()方法readline()方法用于從指定文件中讀取一行數據,其語法格式如下。readline()以file.txt

文件為例,使用reading()方法讀取該文件,示例代碼如程序段0

文件與數據格式化29P10.8

所示。P10.8

readline()方法讀文件withopen('file.txt',mode='r',encoding='utf-8')asf:print(f.readline())print(f.readline())運行代碼,輸出結果如下。Pythonisagreat

language.Yeahits

great!!3)

readlines()方法readlines()方法用于一次性讀取文件中的所有數據,若讀取成功則返回一個列表,文件中的每一行對應列表中的一個元素。readlines()方法的語法格式如下。30readlines(hint=-1)其中,參數hint

的單位為字節,它用于控制要讀取的行數,如果行中數據的總大小超出了hint

字節,那么readlines()不會讀取更多的行。下面以file.txt

文件為例,使用

readlines()方法讀取該文件,示例代碼如程序段P10.9

所示。P10.9

readlines()方法讀取文件withopen('file.txt',mode='r',encoding='utf-8')asf:print(f.readlines())運行代碼,輸出結果如下。['Python

is

a

great

language.\n',

'Yeah

its

great!!\n']在以上介紹的

3

個方法中,read()(參數默認時)和

readlines()方法都可一次讀取文件中的全部數據,但由于計算機的內存是有限的,當文件較大時,read()0

文件與數據格式化31和

readlines()的一次讀取可能會耗盡系統內存,因此這兩種操作都不夠安全。為了保證讀取安全,通常多次調用

read()方法,每次讀取n

字節的數據。3.

文件的定位讀寫程序P10.7

使用read()方法讀取了文件file.txt,結合代碼與程序運行結果進行分析,可以發現read()方法第一次讀取了兩個字符,第二次從第三個字符“t”開始讀取了剩余字符。之所以出現上述情況,是因為在文件的一次打開與關閉之間進行的讀寫操作是連續的,程序總是從上次讀寫的位置繼續向下進行讀寫操作。實際上,每個文件對象都有一個稱為“文件讀寫位置”的屬性,該屬性會記錄當前讀寫的位置。文件讀寫位置默認為

0,即讀寫位置默認在文件首部。Python

提供了一些獲取與修改文件讀寫位置的方法,以實現文件的定位讀寫,下面對這些方法進行講解。321)

tell()方法tell()方法用于獲取文件當前的讀寫位置。以操作文件

file.txt

為例,tell()的用法如程序段P10.10

所示。P10.10

tell()方法獲取讀寫位置withopen('file.txt')as

f:print(f.tell())print(f.read(5))print(f.tell())運行代碼,輸出結果如下。0Pytho50

文件與數據格式化33由代碼運行結果可知,tell()方法第一次獲取的文件讀寫位置為

0,第二次獲取的文件讀寫位置為

5。2)

seek()方法程序一般按順序讀取文件中的內容,但并非每次讀寫都需從當前位置開始。Python

提供了seek()方法,使用該方法可控制文件的讀寫位置,實現文件的隨機讀取。seek()方法的語法格式如下。seek(offset,from)其中,參數

offset

表示偏移量,即讀寫位置需要移動的字節數;from

用于指定文件的讀寫位置,該參數的取值為

0、1、2,它們代表的含義分別如下。

0:表示文件開頭。1:表示使用當前讀寫位置。2:表示文件末尾。34seek()方法調用成功后會返回當前讀寫位置。以操作文件file.txt

為例,seek()的用法如程序段P10.11

所示。P10.11

seek()方法讀寫文件withopen('file.txt')as

f:print(f.tell())local=

f.seek(5,0)print(local)運行代碼,輸出結果如下。05需要注意的是,在Python

3

中,若打開的是文本文檔,那么seek()方法只允許相對于文件首部移動文件讀寫位置;若在參數from

值為

1

2

的情況0

文件與數據格式化35下移動文本文件的讀寫位置,程序就會產生錯誤。具體示例如程序段

P10.12

所示。P10.12

seek()從當前位置讀文本文件withopen('file.txt')as

f:f.seek(5,0)f.seek(3,1)運行代碼,輸出結果如下。Traceback(mostrecentcall

last):File"D:/x1.py",line3,in

<module>f.seek(3,1)io.UnsupportedOperation:can'tdononzerocur-relative

seeks若要相對于當前讀寫位置或文件末尾進行位移操作,則需要以二進制形式36打開文件,示例代碼如程序段P10.13

所示。P10.13

seek()讀二進制文件withopen('file.txt','rb')as

f:f.seek(5,0)local=

f.seek(3,1)print(local)運行代碼,輸出結果如下。8

10.2 數據格式10.2.1 數據維度數據在被計算機處理前需要進行一定的組織,表明數據之間的基本關系和0

文件與數據格式化37邏輯,進而形成數據的維度。維度是與事物“有聯系”的概念的數量。按照“有聯系”的概念的數量進行劃分,事物可分為不同的維度。例如,與線有聯系的概念為長度,因此線為一維事物;與長方形面積有聯系的概念為長度和寬度,因此面積為二維事物;與長方形體積有聯系的概念為長度、寬度和高度,因此體積為三維事物。在計算機中,按照與數據“有聯系”的參數的數量進行劃分,數據可以分為一維數據、二維數據和多維數據。1.

一維數據一維數據是具有對等關系的一組線性數據,對應數學中的集合和一維數組,在Python

語法中,一維列表、一維元組和一維集合都是一維數據,可通過逗號、空格等符號分隔一維數據中的各個元素。38二維數據二維數據關聯參數的數量為

2,此數據對應數學中的矩陣和二維數組,在Python

語法中,二維列表、二維元組等都是二維數據。表格是日常生活中比較常見的二維數據的組織形式,因此二維數據也稱為表格數據。多維數據多維數據利用鍵值對等簡單的二元關系展開數據間的復雜結構,Python

中字典類型的數據是多維數據。多維數據在網絡應用中非常常見,計算機中常見的多維數據格式有HTML(hypertext

markup

language,超文本標記語言)、XML(extensible

markup

language,可擴展標記語言)、JSON(JavaScriptobject

notation,JS

對象標記)等。10.2.2 數據的存儲格式通常將數據存儲在文件中。為方便后續的讀寫操作,數據通常需要按照約0

文件與數據格式化39定的組織方式進行存儲。一維數據呈線性排列,一般用特殊字符分隔,具體示例如下。使用空格分隔:成都

杭州

重慶

武漢

蘇州

西安

天津。使用逗號分隔:成都,

杭州,

重慶,

武漢,

蘇州,

西安,

天津。使用&分隔:成都&杭州&重慶&武漢&蘇州&西安&天津。在存儲一維數據時,可使用不同的特殊字符分隔數據元素,但需要注意以下幾點。同一文件或同組文件一般使用同一分隔符分隔。分隔數據的分隔符不應出現在數據中。分隔符為英文半角符號,一般不使用中文符號作為分隔符。二維數據可視為一維數據的集合,當二維數據只有一個元素時,這個二維數據就是一維數據。國際上通用的一維數據和二維數據存儲格式為CSV(comma-separated

value,逗號分隔值)。CSV

文件以純文本形式存儲表40格數據,文件的每一行對應表格中的一條數據記錄,每條記錄由一個或多個字段組成,字段之間使用逗號(英文半角)分隔。由于字段之間可能使用除逗號外的其他分隔符,因此CSV

也稱為字符分隔值。計算機采用CSV

格式存儲的數據其文件后綴一般為.csv,此種文件在

Windows

平臺中可通過辦公軟件Excle

或記事本打開。三維數據是二維數據的集合,四維數據是三維數據的集合,如果按照這種層層嵌套的方式組織數據,那么多維數據的表示會非常復雜。為了直觀地表示多維數據,也為了方便組織和操作多維數據,三維及以上的多維數據統一采用鍵值對的形式進行格式化。網絡平臺上傳遞的數據大多是多維數據,網絡中常見的多維數據格式

JSON是一種輕量級的數據交換形式,本質上是一種被格式化的字符串,既易于人們閱讀和編寫,也易于機器解析和生成。JSON

語法是JavaScript

語法的子集,JavaScript

語言中的一切都是對象,因此,JSON

也以對象的形式表示數據。0

文件與數據格式化41JSON

格式的數據遵循以下語法規則。數據存儲在鍵值對(key:

value)中,如"姓名":

"張華"。數據的字段由逗號分隔,如"姓名":

"張華","語文":

"116"。一個花括號保存一個JSON

對象,如{"姓名":

"張華","語文":

"116"}。一個方括號保存一個數組,如[{"姓名":

"張華",

"語文":

"116"}]。除JSON

外,網絡平臺也會使用

XML、HTML

等格式組織多維數據,XML和HTML

格式通過標簽組織數據。與

XML、HTML

格式相比,JSON

格式組織的多維數據更直觀,且數據

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論