1. 程式人生 > >json與pickle(python3入門)

json與pickle(python3入門)

import json

'''
1. 什麼是序列化
    序列化就是把記憶體中資料型別轉換成一種可以儲存到硬碟/基於網路傳輸的中間格式
    反序列化就是將中間格式轉成相對應的資料型別
2. 為何要序列化
    1. 持久儲存狀態
    2. 資料跨平臺互動
3. 如何序列化
    json:
        優點: 是一種通用的格式
        缺點: 只能識別部分python資料型別
    pickle:
        優點: 可以識別所有python的資料型別
        缺點: 只能被python識別

'''


# dic = {'k1': 'egon', 'k2': 'alex'}
#json.dumps() #序列化 # res = json.dumps(dic) #dumps 是把python定義的資料型別 序列化為 json格式的字串 # print(res, type(res)) #json.loads() #反序列化 # with open('exercise2.json','wt',encoding='utf-8') as f1: # f1.write(res) #將json格式的字串寫入檔案f1 # with open('exercise2.json','rt',encoding='utf-8') as f1: # res = json.loads(f1.read()) #f1.read() 讀取檔案f1,然後將讀取的內容 反序列化賦值給res
# print(res,res['k1']) #json.dump() #將序列化和寫入的動作,用一行程式碼實現 # with open('exercise1.json', 'wt', encoding='utf-8') as f1: # json.dump(dic, f1) # dump執行過程:其中做了dumps,然後將dumps的結果寫入f1 #json.load() #將讀取json檔案 與 反序列化的動作 ,用一行程式碼實現 # with open('exercise1.json', 'rt', encoding='utf-8') as f1: #
res = json.load(f1) # load執行過程:其中做了loads,將json檔案中的json檔案的字串型別反序列化成原來定義的python資料型別 # print(res, type(res)) #pickle 的用法和json一模一樣,(但是pickle支援讀寫python中所有的資料型別) 不一一舉例了。