今天,我們補(bǔ)充學(xué)習(xí)了文件操作里面的json文件的相關(guān)知識:
1.什么是json數(shù)據(jù)
json是一種數(shù)據(jù)格式,滿足json格式的數(shù)據(jù)就是json數(shù)據(jù)。
文件后綴是.json,并且文件中內(nèi)容滿足json格式
2.json格式
一個json中只有一個數(shù)據(jù);并且這個數(shù)據(jù)是json支持的數(shù)據(jù)類型的數(shù)據(jù)
json支持的數(shù)據(jù)類型
數(shù)字類型 - 包含所有的數(shù)字,包括整數(shù)和小數(shù), 例如: 100, 12.5, -20
字符串 - 使用雙引號括起來字符集, 例如: "123", "abc123", "&*ash"
布爾 - true和false
數(shù)組 - 相當(dāng)于python中的列表, 使用中括號括起來,括號里面是json支持的任意類型的數(shù)據(jù)
例如:["abc", 100, true], [12, 89, 89, 90]
字典 - 相當(dāng)于python中的字典, 使用{}括起來,括號里面是鍵值對。
鍵一般是字符串,值是json支持的任意類型的數(shù)據(jù)
{"name": "張三", "age": 18}
特殊值 - null(相當(dāng)于None), 表示空
3.python中有一個內(nèi)置的模塊用來支持對json數(shù)據(jù)的處理: json
a.將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù)
b.將python數(shù)據(jù)轉(zhuǎn)換成json數(shù)據(jù)
a.將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù):
loads(字符串) - 將json格式的數(shù)據(jù)轉(zhuǎn)換python對應(yīng)的數(shù)據(jù)
注意:這兒的字符串的內(nèi)容必須是json格式的數(shù)據(jù)
json python
數(shù)字 整型/浮點型
字符串 字符串(雙引號會變單引號)
布爾 布爾(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
int/float 數(shù)字
字符串 字符串(單引號會變雙引號)
布爾 布爾(True - true, False - false)
列表/元祖 數(shù)組
字典 字典
4.json文件操作相關(guān)方法
load(文件對象) - 將文件對象中的數(shù)據(jù)讀出來,并且轉(zhuǎn)換成python對應(yīng)的數(shù)據(jù)
(文件對象中的內(nèi)容必須是json格式的數(shù)據(jù))
dump(數(shù)據(jù), 文件對象) - 將python數(shù)據(jù)轉(zhuǎn)換成json格式的字符串,再寫入文件對象中
異常捕獲的相關(guān)知識:
1.什么是異常
程序執(zhí)行過程中出現(xiàn)錯誤,也叫出現(xiàn)異常
2.異常捕獲
讓本來會出現(xiàn)異常的位置,不出現(xiàn)異常,而是自己去處理異常出現(xiàn)的情況
3.怎么捕獲異常
情況一:捕獲所有的異常
a.語法:
try:
代碼段1
except:
代碼段2
b.執(zhí)行過程: 執(zhí)行代碼段1,如果代碼段1中出現(xiàn)異常,不會奔潰,而是馬上執(zhí)行代碼段2。
如果代碼段1沒有異常,不會執(zhí)行代碼段2
情況二:捕獲指定的異常
a.語法:
try:
代碼段1
except 錯誤類型名:
代碼段2
b.執(zhí)行過程: 執(zhí)行代碼段1,當(dāng)代碼段1出現(xiàn)指定類型的異常后不奔潰,而是執(zhí)行代碼段2
情況三:同時捕獲多個異常,對不同的異常做出相同的反應(yīng)
try:
代碼段1
except (錯誤類型1, 錯誤類型2, 錯誤類型3...):
代碼段2
執(zhí)行過程:執(zhí)行代碼段1,當(dāng)代碼段1中出現(xiàn)了指定的異常,不崩潰,然后執(zhí)行代碼2
情況四:同時捕獲多個異常,對不同的異常做出不同的反應(yīng)
try:
代碼段1
except 錯誤類型1:
代碼段2
except 錯誤類型2:
代碼段3
...
4.try-except-finally
try:
代碼段1
except:
代碼段2
finally:
代碼段3
不管代碼段1中是否出現(xiàn)異常,也不管異常是否能夠捕獲到,finally后面的代碼段3都會執(zhí)行!(寫遺書的位置!)
什么時候使用異常捕獲:
明明知道某段代碼可能會出現(xiàn)異常,但是又沒有辦法避免,就使用異常捕獲
拋出異常的相關(guān)知識:
拋出異常:主動讓程序出現(xiàn)異常
語法:
raise 錯誤類型 - 程序執(zhí)行到raise的時候直接拋出異常
注意:錯誤類型必須是一個類,并且是Exception的子類
以上就是今天所學(xué)習(xí)的內(nèi)容,今天的作業(yè)是用json文件和之前的知識綜合應(yīng)用寫一個登錄與注冊的界面,有點小困難,但是我相信自己能做出來,繼續(xù)加油吧?。?!