更新時間:2021-11-17 來源:黑馬程序員 瀏覽量:
利用json模塊的dumps()函數(shù)和loads()函數(shù)可以實現(xiàn)Python對象和JSON數(shù)據(jù)之間的轉(zhuǎn)換,這兩個函數(shù)的具體功能如表8-3所示。
表8-3 json模塊中的函數(shù)
Python對象與JSON數(shù)據(jù)轉(zhuǎn)換時,它們的數(shù)據(jù)類型會發(fā)生改變,接下來通過一張表來羅列Python對象與JSON數(shù)據(jù)的類型對照,具體如表8-4所示。
表8-4 Python對象與JSON數(shù)據(jù)轉(zhuǎn)化時的類型對照表
使用json模塊前需先在程序中導(dǎo)入該模塊,下面分別來演示dumps()和loads()函數(shù)的用法。
1.dumps()函數(shù)
使用dumps()函數(shù)對Python對象進行轉(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對象pyobj,其次通過dumps()函數(shù)將該對象轉(zhuǎn)換為JSON字符串,之后通過print()函數(shù)打印了JSON字符串。
2.loads()函數(shù)
以上述示例生成的JSON數(shù)據(jù)jsonstr為例,使用loads()函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)換為符合Python語法要求的數(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]