#序列化#什麼叫序列化
# 資料型別轉為字串的過程
#什麼時候用序列化
#資料從記憶體到檔案
#資料在網路上傳輸 位元組 -字串-字典-
#python 中序列化模組有:
# json 通用 只認識list tuple dict
# pickle python中通用
# shelve
###part1 json
import json
#序列化 dumps 將乙個字典轉換成乙個字串
dic=
str_dic=json.dumps(dic)
print(type(str_dic),str_dic)
#注意,json轉換完的字串型別的字典中的字串是由""表示的
#注意,要用json的loads功能處理的字串型別的字典中的字串必須由""表示
dic2=json.loads(str_dic)#反序列化 loads 將乙個字串格式的字典轉換成乙個字典
print(type(dic2),dic2)
#dump 寫入檔案控制代碼
dic=
f1=open('json_file','w')
json.dump(dic,f1)
f1.close()
#load 從檔案中讀取資料
f1=open('json_file','r')
dic2=json.load(f1)
f1.close()
print(dic2)
# 如果要dump多條資料
# 每一條資料線dumps一下 程式設計字串 然後開啟檔案 write寫進檔案裡 \n
# 讀取的時候按照標誌讀取或者按行讀
# 讀出來之後 再使用loads
dic=
with open('json_file','w') as f1:
str_dic=json.dumps(dic)
f1.write(str_dic+'\n')
f1.write(str_dic+'\n')
# #多次load實現:
with open('json_file') as f1:
for str_dic in f1:
dic=json.loads(str_dic.strip())
print(dic)
#part 2 pickle pickle跟json方法幾乎一致
# 跟json比來有3點不同
# 1.pickle支援更多的資料型別
# 2.pickle的結果是二進位制
# 3.pickle在和檔案互動的時候可以被多次load
#二進位制格式
import pickle
class a:
def __init__(self,name):
self.name=name
alex=a('alex')
print(pickle.dumps(alex))
#dump存入檔案
with open('aaa','wb') as f:
pickle.dump(alex,f)
pickle.dump(alex, f)
pickle.dump(alex, f)
#load獲取檔案
with open('aaa','rb') as f1:
while true:
try:
obj=pickle.load(f1)
print(obj.name)
except eoferror:
break
序列化模組
模組 乙個py檔案就是乙個模組.python開發效率之高 python的模組非常多,第三方庫.模組分類 1,內建模組 登入模組,時間模組,sys模組,os模組 等等.所有的擴充套件模組 3,自定義模組.自己寫的py檔案.序列化模組.序列化 創造乙個序列.例項化 創造乙個例項 物件 將乙個字典通過網路...
序列化模組
什麼叫序列化 將原本的字典 列表等內容轉換成乙個字串的過程就叫做序列化。那為什麼要序列化呢?比如,我們在python 中寫的一段 需要c上使用,那我們怎麼給?我們能想到的方法就是存在檔案裡,然後在c上再從檔案裡讀出來。但是我們都知道,對於檔案來說是沒有 不是所有的資料型別檔案都能夠識別的比如字典 列...
序列化模組
序列化模組 把某資料型別轉化成字串型別 序列化 字串型別轉化為其他資料型別 反序列化 josn模組 只有很少一部分資料型別能通過josn轉化成字串型別 字典 列表 元組 元組會轉化成列表 import json dic str dic json.dumps dic dumps字典型別轉化成字串型別 ...