一、json模組
作用:將內建的資料型別,如int\tuple\list\dic(set, class不行),進行序列化或反序列化
dumps\loads方法主要用於網路傳輸,有時也用來讀取檔案。用於一般資料結構資料與json字串相互轉換
import json
# 1.將一般資料結構轉化成json字串
dic =
s1= json.dumps(dic)
print(s1, type(s1))
# 2.將json字串寫入到檔案中
with open('file1.json', mode='a', encoding='utf-8') as f1:
f1.write(s1+'\n')
# 3.將json字串轉化成一般的資料型別
dic1 = json.loads(s1)
print(dic1, type(dic1))
print("\n\n")
# 4.將檔案中資料讀出,再用loads轉化成一般的資料型別
with open('file1.json', mode='r', encoding='utf-8') as f2:
while true:
try:
s2 = f2.readline()
dic2 = json.loads(s2)
print(dic2, type(dic2))
except exception:
break
dump、load模組
dump/load 只能寫入檔案,並且一次只能寫入乙個資料結構
l = [1,2,3,4]
with open('file2.json', encoding='utf-8', mode='w') as f:
json.dump(l, f)
with open('file2.json', encoding='utf-8', mode='r') as f:
l1 = json.load(f)
print(l1, type(l1))
二、pickle模組
語法基本與json一樣
不同點:
pickle是一般資料型別與byte型別相互轉化
pickle的dumps\loads方法只能用於網路傳輸,dump\load方法用於讀寫檔案
pickle可以的資料型別為一切物件,不像json那樣受到限制
import pickle
class person():
def __init__(self, name, birth):
self.name = name
self.birth = birth
mkc = person('mkc', 1993)
s = pickle.dumps(mkc)
p1= pickle.loads(s)
print(p1.name)
# # 嘗試寫入檔案
# with open('file3.pickle', mode='wb', encoding='utf-8') as f: #error
# f.write(s) # error
with open('file3.pickle', mode='wb') as f:
pickle.dump(mkc, f)
with open('file3.pickle', 'rb') as f:
p2 = pickle.load(f)
print(p2.birth)
pickle模組 和json模組
pickle和json序列號 json模組是所有語言通用的,可以用來把一些資料轉成字串儲存在檔案中 import json l 1,2,3 with open t3 mode w encoding utf 8 as f print json.dump l,f import json l 1,2,3 ...
json模組與pickle模組
json pickle模組 1 什麼是序列化 反序列化 記憶體中的資料型別 序列化 特定的格式 json格式或者pickle格式 記憶體中的資料型別 反序列化 特定的格式 json格式或者pickle格式 2 為何要序列化 序列化得到結果 特定的格式的內容有兩種用途 1 可用於儲存 用於存檔 2 傳...
python的json和pickle模組
一。序列化反序列化01 什麼是序列化 反序列化 序列化就是將記憶體中的資料結構轉換成一種中間格式儲存到硬碟或者基於網路傳輸 發序列化就是硬碟中或者網路中傳來的一種資料格式轉換成記憶體中資料結構 02 為什要有 1 可以儲存程式的執行狀態 2 資料的跨平台互動 03 怎麼用 json 優點 跨平台性強...