1.什么是json數(shù)據(jù)
json是一種數(shù)據(jù)格式,滿足json格式的數(shù)據(jù)就是json數(shù)據(jù)。
文件后綴是.json,并且文件中內(nèi)容滿足json格式
2.json格式
一個(gè)json中只有一個(gè)數(shù)據(jù);并且這個(gè)數(shù)據(jù)是json支持的數(shù)據(jù)類型的數(shù)據(jù)
json支持的數(shù)據(jù)類型
數(shù)字類型 - 包含所有的數(shù)字,包括整數(shù)和小數(shù),例如100, 12.5, -20....
字符串 - 使用雙引號(hào)括起來的字符集,例如: "1230", "abc123"...
布爾 - true和false
數(shù)組 - 相當(dāng)于python中列表,使用中括號(hào)括起來,括號(hào)里面是
任意類型的數(shù)據(jù)(json支持的數(shù)據(jù))例如:["abc", 100, true],[12,89,76]
字典 - 相當(dāng)于python中的字典,使用{}括起來,括號(hào)里面是鍵值對(duì),
鍵一般是字符串,值是json支持的任意類型的數(shù)據(jù)
特殊值 - null(相當(dāng)于None),表示空
3.python中有一個(gè)內(nèi)置的模塊用來支持對(duì)json數(shù)據(jù)的處理:json
a.將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù)
loads(字符串) - 將json格式的數(shù)據(jù)轉(zhuǎn)換成python對(duì)應(yīng)的數(shù)據(jù)
注意:這兒的字符串的內(nèi)容必須是json格式的數(shù)據(jù)
json python
數(shù)字 整數(shù)/浮點(diǎn)型
字符串 字符串(雙引號(hào)會(huì)變單引號(hào))
布爾 布爾(true -> True, false->False)
數(shù)組 列表
字典 字典
null None
b.將python數(shù)據(jù)轉(zhuǎn)換成json數(shù)據(jù)
dumps(數(shù)據(jù)) - 將python數(shù)據(jù)轉(zhuǎn)換成內(nèi)容符合json格式的字符串
注意:最終結(jié)果是字符串
python json
inf/float 數(shù)字
字符串 字符串(單引號(hào)會(huì)變雙引號(hào))
布爾 布爾(True->true, False->false)
列表/元組 數(shù)組
3.json文件操作相關(guān)方法
load(文件對(duì)象) - 將文件對(duì)象中的數(shù)據(jù)讀出來,并且轉(zhuǎn)換成python對(duì)應(yīng)的數(shù)據(jù)
(文件對(duì)象中的內(nèi)容必須是json格式的數(shù)據(jù))
dump(數(shù)據(jù),對(duì)象) - 將python數(shù)據(jù)轉(zhuǎn)換成json格式的字符串,在寫入文件對(duì)象中
1.什么是異常
程序執(zhí)行過程中出現(xiàn)錯(cuò)誤,也叫出現(xiàn)異常
2.異常捕獲
讓本來會(huì)出現(xiàn)異常的位置,不出現(xiàn)異常,而是自己去處理異常出現(xiàn)的情況
3.怎么捕獲異常
情況一:捕獲所有的異常
語(yǔ)法:
try:
代碼段1
except:
代碼段2
執(zhí)行過程:執(zhí)行代碼段1,如果代碼段1中出現(xiàn)異常,不會(huì)崩潰,而是馬上執(zhí)行代碼段2
如果代碼段1沒有異常,不會(huì)執(zhí)行代碼段2
情況二:捕獲指定的異常
a.語(yǔ)法
try:
代碼段1
except 錯(cuò)誤類型名:
代碼段2
b.執(zhí)行過程:執(zhí)行代碼段1,當(dāng)代碼段1出現(xiàn)指定類型的異常后不奔潰,而是執(zhí)行代碼段2
情況三:同時(shí)捕獲多個(gè)異常,對(duì)不同的異常做出相同的反應(yīng)
try:
代碼段1
except (錯(cuò)誤類型1,錯(cuò)誤類型2,錯(cuò)誤類型3....):
代碼段2
執(zhí)行過程:執(zhí)行代碼段1,當(dāng)代碼段1中出現(xiàn)了指定的異常,不崩潰,然后執(zhí)行代碼段2
情況四:同時(shí)捕獲多個(gè)異常,對(duì)不同的異常做出不同的反應(yīng)
try:
代碼段1
except 錯(cuò)誤類型1:
代碼段2
except 錯(cuò)誤類型2:
代碼段3
.....
4.try-except-finally
try:
代碼段1
except:
代碼段2
finally:
代碼段3
不管代碼段1中是否出現(xiàn)異常,也不管異常是否能夠捕獲到,finally后面的代碼段3都會(huì)執(zhí)行
什么時(shí)候使用異常捕獲:
明明知道某段代碼可能會(huì)出現(xiàn)異常,但是又沒有辦法避免,就使用異常捕獲
拋出異常:主動(dòng)讓程序出現(xiàn)異常
語(yǔ)法:
raise:錯(cuò)誤類型 - 程序執(zhí)行到raise的時(shí)候直接拋出異常
注意:錯(cuò)誤類型必須是一個(gè)類,并且這個(gè)類是Exception的子類