更新時(shí)間:2021-11-17 來(lái)源:黑馬程序員 瀏覽量:
利用json模塊的dumps()函數(shù)和loads()函數(shù)可以實(shí)現(xiàn)Python對(duì)象和JSON數(shù)據(jù)之間的轉(zhuǎn)換,這兩個(gè)函數(shù)的具體功能如表8-3所示。
表8-3 json模塊中的函數(shù)
Python對(duì)象與JSON數(shù)據(jù)轉(zhuǎn)換時(shí),它們的數(shù)據(jù)類型會(huì)發(fā)生改變,接下來(lái)通過(guò)一張表來(lái)羅列Python對(duì)象與JSON數(shù)據(jù)的類型對(duì)照,具體如表8-4所示。
表8-4 Python對(duì)象與JSON數(shù)據(jù)轉(zhuǎn)化時(shí)的類型對(duì)照表
使用json模塊前需先在程序中導(dǎo)入該模塊,下面分別來(lái)演示dumps()和loads()函數(shù)的用法。
1.dumps()函數(shù)
使用dumps()函數(shù)對(duì)Python對(duì)象進(jìn)行轉(zhuǎn)碼,具體示例如下:
>>> import json >>> pyobj = [[1, 2, 3], 345, 23.12, 'qwe1, ('key11:(1,2,3), 'key21:(2,3,4)), True, False, None] >>> jsonstr = json.dumps(pyobj) >>> print(jsonstr) [[1, 2, 3], 345, 23.12, "qwe", {"key1": [1, 2, 3], "key2": [2, 3, 4]}, true, false, null]
以上代碼首先定義了Python對(duì)象pyobj,其次通過(guò)dumps()函數(shù)將該對(duì)象轉(zhuǎn)換為JSON字符串,之后通過(guò)print()函數(shù)打印了JSON字符串。
2.loads()函數(shù)
以上述示例生成的JSON數(shù)據(jù)jsonstr為例,使用loads()函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)換為符合Python語(yǔ)法要求的數(shù)據(jù)類型,具體代碼如下:
>>> pydata = json. loads(jsonstr) >>> print (pydata) [[1, 2, 3], 345, 23.12, 'qwe', {'key11: [1, 2, 3], 'key21: [2, 3, 4]}, True,False, None]