小白學習Python的第十四天之json與異常

2021-10-24 20:46:41 字數 4591 閱讀 5933

1.什麼是json

"""

json是一種資料格式;幾乎所有的高階語言都支援這種資料格式的處理,

所以json主要用於不同語言之間的資料交流。

"""

2.json格式

"""

json格式的要求:1)乙個json有且只有乙個資料

2)唯一的這個資料必須是json支援的資料型別的資料

json支援的資料型別:

1)數字型別(number) - 所有數字對應的型別,表示的時候直接寫。例如:100, -102, 12.3, 3e3

2)字串(string) - 用雙引號引起來的字符集(只能是雙引號),"abc", "abc\n123", "\ue400abc"

3)布林(boolean) - 只有 true 和 false 兩個值

4)陣列(array) - 相當於python的列表

5)字典(dictionary) - 相當於python中的字典,key只能是字串

6)空值 - null,相當於python的none

"""

3.json資料和python資料之間的相互轉換

python中提供了乙個json模組,專門用來提供處理json資料相關的函式

1)json資料轉python資料

"""

json -> python

數字 -> int/float

字串 -> 字串(可能會將雙引號變成單引號)

布林 -> 布林(首字母變成大寫字母)

陣列 -> 列表(元素也會進行相應的轉換)

字典 -> 字典(元素也會轉換)

null -> none

json.loads(json格式的字串) - 將json格式的字串轉換成對應的python資料;

json格式的字串:字串內容滿足json格式

"""

result = json.loads(

'"abc"'

)print

(result,

type

(result)

)# abc

result = json.loads(

'100'

)print

(result,

type

(result)

)result = json.loads(

'["abc", 10, 123, true, null]'

)print

(result)

# ['abc', 10, 123, true, none]

result = json.loads('')

print

(result)

#

# json資料,,

,,,,

,,,]

}

# 例項1:json檔案資料解析,取出title中的內容

with

open

('data.json'

, encoding=

'utf-8'

)as f:

result = f.read(

)re = json.loads(result)

for i in re[

'newslist']:

print

(i['title'

])

2)python資料轉json資料

"""

python -> json

int 數字

float 數字

字串 字串(引號會變成雙引號)

布林 布林(true -> true;false -> false)

列表、元組 陣列(元素也會自動轉換)

字典 字典(key全部自動變成字串)

none null

json.dumps(python資料) - 將指定的python資料轉換成json格式的字串

"""

result = json.dumps(10)

print

(type

(result),10

)# 10

result = json.dumps([10

,12.3

,'abc'

,none

,true])

print

(result)

# '[10, 12.3, "abc", null, true]'

result = json.dumps(

)print

(result)

#

1.什麼是異常

異常就是錯誤(程式報錯就是程式出現異常)

執行程式的過程中如果出現異常,程式會直接結束(實際上是執行緒結束)

2.什麼是異常捕獲

"""

1)異常捕獲就是讓程式在出現異常的時候,不崩潰繼續執行。

2)不是任何異常都可以捕獲的,只有在明知道某段**會出現異常但是又不能或者不方便通過修改**來避免這個異常,

這個時候就可以對異常捕獲。

"""

3.怎麼捕獲異常

"""

方法一:捕獲**段1中所有異常

try:

需要捕獲異常的**段-**段1

except:

捕獲到異常後會執行的**段

finally:

**塊其他**

執行過程:先執行try裡面的**段,執行過程中如果出現異常,程式不崩潰,馬山執行except後面的**段,執行完後執行其他**;

如果執行try裡面的**段沒有出現異常,except後面的**不會執行,直接執行其他**

# 方法二:捕獲指定異常

try:

需要捕獲異常的**段

except 異常型別:

捕獲到指定異常後會執行的**段

finally:

**塊# 方法三:同時捕獲多種異常,針對不同的異常做相同的處理

try:

需要捕獲異常的**段

except (異常型別1, 異常型別2, ...):

捕獲到指定異常後會執行的**段

finally:

**塊# 方法四:同時捕獲多種異常,針對不同的異常做不同的處理

try:

需要捕獲異常的**段

except 異常型別1:

捕獲到指定異常後會執行的**段

except 異常型別2:

捕獲到指定異常後會執行的**段

...finally:

**塊"""

# 方法一

try:

age =

int(

input

('請輸入年齡:'))

except

:print

('輸入年齡的格式不正確!'

)

# 方法二

try:

list1 =[10

,20]print

(list1[10]

)except indexerror:

print

('出現異常'

)

# 4.finally   -   寫遺書,程式崩潰前的最後一次掙扎

try:

list1 =[10

,20]print

(list1[10]

)except keyerror:

print

('出現異常'

)finally

:print

('我還要掙扎一下'

)

5.丟擲異常 - 主動讓程式崩潰

raise異常型別

異常型別可以是系統異常型別也可以是自定義的異常型別

def

func1

(age:

int)

:if age <

0or age >

150:

raise valueerror

if age >=18:

print

('成年人'

)else

:print

('未成年'

)func1(

-1534

)# valueerror

PYTHON小白 第十四天

python小白 第十四天 1 方法 方法是類或物件的行為特徵的抽象,但python方法其實也是函式,其定義方式 呼叫方式和函式都非常相似,因此python方法並不僅僅是單純的方法,它與函式也有莫大的關係。1.1 類也能呼叫例項方法 python的類在很大程度上是乙個命名空間 當程式在類體中定義變數...

python學習 第十四天

在下這廂有禮了 python正規表示式 python通過re模組提供對正規表示式的支援。使用re的一般步驟是先將正規表示式的字串形式編譯為pattern例項,然後使用pattern例項處理文字並獲得匹配結果 乙個match例項 最後使match例項獲得資訊,進行其他的操作。encoding utf ...

學習python 第十四天

python 傳送電子郵件 訪問 http協議,傳送郵件要使用smtp。smtp mail transfer protocol 即簡單郵件傳輸協議,它是一組用於由源位址到目的位址傳送郵件的規則,由它來控制信件的中轉方式。python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議...