json序列化:json.dumps()用於將dict類型的數據轉成json字符串
在序列化時,中文漢字被轉換為unicode編碼,在dumps函數中添加參數ensure_ascii=False可解決;dumps的indent參考可以調整顯示格式,即縮進,一般設置為2。鍵值數據不能用雙引號,只能用單引號(如果是雙引號,可以用eval())。
json反序列化:json.loads()用於將json字符串轉成dict類型的數據
import json #json.dumps()用於將dict類型的數據轉成json字符串 #json.loads()用於將json字符串轉成dict類型的數據 dic = {'age': 23, 'job': 'student'} print(type(dic),dic) # out: <class 'dict'> {'age': 23, 'job': 'student'} dic_str = json.dumps(dic) print(type(dic_str), dic_str) # out: <class 'str'> {"age": 23, "job": "student"} dic_obj = json.loads(dic_str) print(type(dic_obj), dic_obj) # out: <class 'dict'> {'age': 23, 'job': 'student'} #eval()字符串轉字典,列表 dic= "{'age': 23, 'job': 'student'}" print(type(dic),dic) # out: <class 'str'> {'age': 23, 'job': 'student'} print(type(eval(dic)),eval(dic)) # out: <class 'dict'> {'age': 23, 'job': 'student'} lis = "['age','job']" print(type(lis),lis) # out: <class 'str'> ['age','job'] print(type(eval(lis)),eval(lis)) # out: <class 'list'> ['age', 'job'] #dump: 將dict類型數據寫入json文件中 #load: 讀取數據以dict類型返回 with open("../file/json/record.json","w") as f: json.dump(dic_obj,f) with open("../file/json/record.json",'r') as f: dic_obj = json.load(f) print(type(dic_obj), dic_obj) # out: <class 'dict'> {'age': 23, 'job': 'student'} print(dic_obj["age"]) # out: 23