序列化模組

2022-03-17 06:25:18 字數 4155 閱讀 2155

#

模組: 乙個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...