#模組: 乙個py檔案就是乙個模組.
'''python開發效率之高:python的模組非常多,第三方庫.
模組分類:
1,內建模組:登入模組,時間模組,sys模組,os模組 等等.
所有的擴充套件模組:
3,自定義模組.自己寫的py檔案.
'''#
序列化模組.
#序列化:創造乙個序列.
#例項化:創造乙個例項(物件).
#將乙個字典通過網路傳輸給另乙個人.
'''檔案中可以儲存:字串,和bytes.
資料的傳輸:bytes型別.
'''
#序列化: 創造乙個序列, ---> 特殊處理(序列化的)字串.
#序列化:
#json:
#適用於不同語言之間的,
#但是可支援的資料型別:字串,數字,列表(元祖),字典,float,bool,none
#pickle:
#只用於python語言之間的.
#可支援python所有的資料型別.
#shelve(了解):只是python,小工具(檔案方面).
#序列化過程: 乙個資料型別 ---> 序列化的字串
#反序列化過程: 序列化的字串 ---> 它所對應的資料型別
#dumps loads 網路的傳輸
#dic =
#dic =
#print(str(dic)) # 基礎資料型別str 裡面如果有引號就是單引號
#ret = json.dumps(dic,ensure_ascii=false) # 序列化過程:資料型別dic---> 序列化的字串
#print(ret,type(ret))
#被json序列化的字串:
#1,可以直接通過網路互相傳輸.
#2,可以在各個語言中通用.
#dic1 = json.loads(ret) # 反序列化過程.:將序列化的字串---> 原有的資料型別.
#print(dic1,type(dic1))
#dump load 有關檔案儲存
#import json
#l1 = ['張三','歷史','王五','alex','老土','旭哥']
#f = open('json_file',encoding='utf-8',mode='w')
#json.dump(l1,f,ensure_ascii=false) # 將序列化的字串儲存到檔案中
#f.close()
#f = open('json_file',encoding='utf-8')
#ret = json.load(f)
#print(ret,type(ret))
#f.close()
#有關檔案儲存的問題?
import json
#dic =
#dic2 =
#dic3 =
#f = open('json_files',encoding='utf-8',mode='w')
#json.dump(dic,f,ensure_ascii=false)
#json.dump(dic2,f,ensure_ascii=false)
#json.dump(dic3,f,ensure_ascii=false)
#f.close()
#f = open('json_files', encoding='utf-8',)
#print(json.load(f))
#print(json.load(f))
#print(json.load(f))
#f.close()
#將多個序列化的字串寫入檔案,然後反序列化,就會出錯
#用 dump load 只能寫入和讀取檔案 乙個序列化的字串
# 用dumps和loads操作import json
#dic =
#dic2 =
#dic3 =
#with open('json_files',encoding='utf-8',mode='a') as f1:
#s1 = json.dumps(dic,ensure_ascii=false)
#f1.write(s1+'\n')
#s2 = json.dumps(dic2,ensure_ascii=false)
#f1.write(s2+'\n')
#s3 = json.dumps(dic3,ensure_ascii=false)
#f1.write(s3+'\n')##
with open('json_files',encoding='utf-8') as f2:
#for line in f2:
#dic = json.loads(line)
#print(dic,type(dic))
#其他引數
#import json
#data =
#json_dic2 = json.dumps(data,sort_keys=true,indent=2,separators=('|','*'),ensure_ascii=false)
#print(json_dic2)##
print(json.loads(json_dic2)) # 如果改了:separators=('|','*')反序列化不行了
#sort_keys=true 字典鍵的首字母的ascii碼排序
#ensure_ascii=false 顯示中文
#indent=2 key 縮排
#dic =
#ret = json.dumps(dic)
#print(ret) # typeerror: keys must be a string
#dumps loads 網路傳輸
#dic = }
#import pickle
#ret = pickle.dumps(dic) # bytes型別無法識別內容##
dic1 = pickle.loads(ret)
#print(dic1,type(dic1))
#dump load 檔案操作
#dic = }
#import pickle
#with open('pickle_file',mode='wb') as f1:
#pickle.dump(dic,f1)
#with open('pickle_file',mode='rb') as f2:
#print(pickle.load(f2))
#多個資料儲存到乙個檔案 (dump.load)
#dic =
#dic2 =
#dic3 =
#import pickle
#with open('pickle_files',mode='wb') as f1:
#pickle.dump(dic,f1)
#pickle.dump(dic2,f1)
#pickle.dump(dic3,f1)
#pickle.dump(dic3,f1)
#with open('pickle_files',mode='rb') as f1:
#while true:
#try:
#print(pickle.load(f1))
#except eoferror:
#break
shelve 與檔案相關#import shelve
#f = shelve.open('shelve_file')
#f['key'] = #直接對檔案控制代碼操作,就可以存入資料
#f.close()
#import shelve
#f1 = shelve.open('shelve_file')
#existing = f1['key'] #取出資料的時候也只需要直接用key獲取即可,但是如果key不存在會報錯
#f1.close()
#print(existing)
序列化模組
什麼叫序列化 將原本的字典 列表等內容轉換成乙個字串的過程就叫做序列化。那為什麼要序列化呢?比如,我們在python 中寫的一段 需要c上使用,那我們怎麼給?我們能想到的方法就是存在檔案裡,然後在c上再從檔案裡讀出來。但是我們都知道,對於檔案來說是沒有 不是所有的資料型別檔案都能夠識別的比如字典 列...
序列化模組
序列化模組 把某資料型別轉化成字串型別 序列化 字串型別轉化為其他資料型別 反序列化 josn模組 只有很少一部分資料型別能通過josn轉化成字串型別 字典 列表 元組 元組會轉化成列表 import json dic str dic json.dumps dic dumps字典型別轉化成字串型別 ...
序列化模組
把物件 變數 從記憶體中變成可儲存或傳輸的過程稱為序列化 如果要在不同的程式語言之間傳遞物件,就必須把物件序列化為標準格式,如果有序列化為json表示出來的就是乙個字串,可以被所有語言讀取,也可以方便的儲存到磁碟或者通過網路傳輸 json和python內建的資料型別對應如下 json型別 pytho...