標籤:list port 資料 pytho round 列表 文檔 open ret
序列化模組:json 和 pickle
用於序列化的兩個模組
- json,用於字串 和 python資料類型間進行轉換
- pickle,用於python特有的類型 和 python的資料類型間進行轉換
Json模組提供了四個功能:dumps、dump、loads、load
pickle模組提供了四個功能:dumps、dump、loads、load
import jsons = ‘{"key1":"value1","key2":"value2"}‘ # ==> 用json模組將字串轉化成其他資料類型,字串裡出現引號必須用雙引號ret = json.loads(s) # ==> loads 由字串轉其他資料類型print(ret,type(ret))l = ‘[11,22,3,56,75]‘result =json.loads(l)print(result,type(result))# 輸入結果:{‘key1‘: ‘value1‘, ‘key2‘: ‘value2‘} <class ‘dict‘>[11, 22, 3, 56, 75] <class ‘list‘>
import jsonret = json.load(open(‘ethan.txt‘,‘r‘)) # ==> 將文檔(內部是字串格式)轉換成python的其他資料類型print(ret,type(ret)) # ==> 文檔裡是字典樣式的字串# 輸入結果:{‘key1‘: ‘value1‘, ‘key2‘: ‘value2‘} <class ‘dict‘># 總結:# json.loads()用於將形似字典、列表、元組的字串,轉換成字典、列表、元組# json.load() 用於將文檔(內容是形似字典、列表、元組的字串)轉換成字典、列表、元組
import jsondi = {"key1":"value1","key2":"value2"}ret = json.dumps(di) # ==> 將字典、列表、元組 轉換成字串格式print(ret,type(ret))# 輸入結果:{"key1": "value1", "key2": "value2"} <class ‘str‘>json.dump(di,open(‘test2.txt‘,‘a+‘)) # ==> 將字典、元組、列錶轉換成字串格式並寫入文檔# 輸入結果: test2檔案內容{"key1": "value1", "key2": "value2"}# 總結:# json.dumps() 用於將字典、列表、元組,轉換成字串# json.dump() 用於將字典、列表、元組,存入文檔中並轉換成字串
import pickled = {‘name‘: ‘ethan‘, ‘age‘: 28}ret = pickle.dumps(d) # ==> pickle將字典、元組、列錶轉換成二進位print(ret, type(ret))l = [11, 22, 3, 45, 54]res = pickle.dumps(l)print(res)pickle.dump(d, open(‘test2.txt‘, ‘ab‘)) # ==> 將字典、元組、列錶轉換成二進位寫入文檔# 注意 dump load 不要一起運行,會報錯,一步一步來f = open(‘test2.txt‘, ‘rb‘)r = pickle.loads(f.read()) # ==> 將二進位轉換成字典、列表、元組# r = pickle.load(f)print(r)# 輸入結果:b‘\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x05\x00\x00\x00ethanq\x02X\x03\x00\x00\x00ageq\x03K\x1cu.‘ <class ‘bytes‘>b‘\x80\x03]q\x00(K\x0bK\x16K\x03K-K6e.‘{‘name‘: ‘ethan‘, ‘age‘: 28}# 總結:# pickle.dumps() 用於將字典、列表、元組,轉換成二進位# pickle.dump() 用於將字典、列表、元組,存入文檔中並轉換成二進位# pickle.loads() 用於將二進位,轉換成字典、列表、元組# pickle.load() 用於將文檔二進位,轉換成字典、列表、元組
Python json和pickle模組