from os import write
print("===========================序列化-反序列化===============================")
#暫時這麼理解
#序列化:將數據從內存持久化保存到硬盤的過程
#反序列化:將數據從硬盤加載到內存的過程
#write時,只能寫入字符串或者二進制
#字典 列表 數字 等都不能直接寫入到文件當中
#1將數據轉換成字符串:repr / str
#2將數據轉換成二進制
#3將數據轉換成 Json:本質是字符串
file = open("Pfile/Pfile13.txt","w",encoding="utf8")
file.write("nihao caonima de ")
names = ["張發","找死","曹尼瑪","給車","算法","算法","兒童","兒童"]
file.write(names.__repr__())
file.write(str(names))
file.close()
#json裏將數據持久化有2個方法:
#dumps:將數據轉換成爲json字符串,不會將數據保存到文件裏
#dump:將數據轉換成爲json字符串,會將數據保存到文件裏
import json
file = open("Pfile/Pfile14-json.txt","w",encoding="utf8")
names = ["json","Hello","gg","hh","jj","kk","ll","ii"]
x = json.dumps(names) #dumps:將數據轉換成字符串,不會將數據保存到文件裏
file.write(x) #手動寫入文件
print(x)
file.close()
file = open("Pfile/Pfile15-json.txt","w",encoding="utf8")
names = ["json","Hello","gg"]
x = json.dump(names,file) #dumps:將數據轉換成字符串,會將數據保存到文件裏,自動寫入文件
file.close()
#json裏將數據反序列化有2個方法:
#loads:將json字符串加載成爲Python裏的數據
#load:讀取文件,把讀取的內容加載成爲Python裏的數據
xx = '{"name":"world","good":"bad","love":90}'
p = json.loads(xx) #loads:將json字符串加載成爲Python裏的數據
print(p["name"])
file = open("Pfile/Pfile15-json.txt","r",encoding="utf8")
yy = json.load(file) #load:讀取文件,把讀取的內容加載成爲Python裏的數據
print(yy)
print(yy[0])
print("===========================Pickle模塊使用===============================")
#json:將Python裏的數據(str/list/tuple/dict/int/float/bool/None)等轉化爲對應的Json字符串
#pickle:將Python裏任意的對象轉換爲二進制
import pickle
#序列化 dumps:轉化成二進制 dump:轉化成二進制並寫入到文件
#反序列化 loads:將二進制轉化成爲Python數據 load:讀取文件二進制數據轉化成爲python
names = ["諸葛亮","json","Hello","gg","你好"]
#dumps
file = open("Pfile/Pfile16-pickle.txt","wb")
b_names = pickle.dumps(names)
file.write(b_names) #寫入的是二進制
file.close()
#dump
file = open("Pfile/Pfile16-pickle.txt","wb")
pickle.dump(names,file)
file.close()
#loads
file = open("Pfile/Pfile16-pickle.txt","rb")
x = file.read()
y = pickle.loads(x)
print(y)
file.close()
#load
file = open("Pfile/Pfile16-pickle.txt","rb")
y = pickle.load(file)
file.close()
print(y)
print("===========================Pickle 與 json區別===============================")
#pickle 用來將數據原封不動的轉換成爲二進制,只能用Python讀 不能跨平臺
#json 只能保存部分數據(基本數據類型),用在不同平臺傳輸數據,誇平臺
Python-Json-Pickle
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.