json模塊在python中用於處理json格式數據,主要包含以下4個函數,其中json.dumps()、json.loads()較為常用。
json.dumps()
它表示“dump string”,將一個python值轉換成json格式的字符串。該python值只能是以下數據類型之一:字典、列表、元組、數字、字符串、布爾型,而集合類型無法轉換。
import json dict_data = {"a": 1, "b": 2} json_data = json.dumps(dict_data) # 打印轉換結果 print(type(json_data)) print(json_data)
上述代碼是將dict格式數據轉換成json格式字符串,運行結果為:
<class 'str'> {"a": 1, "b": 2}
不同於直接使用str()進行轉譯,json.dumps()將python值轉換成字符串類型時會使用雙引號。為了方便理解,以下演示直接使用str()進行字符串的轉譯:
import json dict_data = {"a": 1, "b": 2} str_data = str(dict_data) # 打印轉換結果 print(type(str_data)) print(str_data)
上述代碼將dict格式數據用str()轉換成字符串,運行結果為:
<class 'str'> {'a': 1, 'b': 2}
可別小瞧了單引號和雙引號之間的區別,請注意json字符串總是使用雙引號。
json.loads()
它表示“load string” ,將一個json格式字符串轉換成python值。
import json dict_data = {"a": 1, "b": 2} # 將dict格式數據轉換成json格式字符串 json_data = json.dumps(dict_data) # 將json格式字符串轉換成對應的python值 load_data = json.loads(json_data) # 打印轉換結果 print(type(load_data)) print(load_data)
上述代碼運行結果為:
<class 'dict'> {'a': 1, 'b': 2}
json.dump()
將一個python值轉換成json格式並且存入指定文件,用法如下:
import json dict_data = {"a": 1, "b": 2} # 將dict_data轉換成json格式並且存入data.json文件中 with open('data.json', 'w') as f: json.dump(dict_data, f)
json.load()
將一個指定json格式文件轉換成python值。比如把前一個例子中data.json文件數據還原成dict格式數據:
import json with open('data.json', 'r') as f: data = json.load(f) print(type(data)) print(data)
上述代碼運行結果為:
<class 'dict'> {'a': 1, 'b': 2}