python中的序列化 python中序列化

2021-10-12 14:23:30 字數 3026 閱讀 5872

1.序列化之json

注意:如果我們要在不同的程式語言之間傳遞物件,就必須把物件序列化為標準格式

,比如xml,但更好的方法是序列化為json,因為json表示出來就是乙個字串,

可以被所有語言讀取,也可以方便地儲存到磁碟或者通過網路傳輸。json不僅是標

準格式,並且比xml更快,而且可以直接在web頁面中讀取,非常方便。

import json

dic=

print(type(dic))#

j=json.dumps(dic)

print(type(j))#

f=open('序列化物件','w')

f.write(j) #-------------------等價於json.dump(dic,f)

f.close()

#-----------------------------反序列化

import json

f=open('序列化物件')

data=json.loads(f.read())# 等價於data=json.load(f)

import json

#dct=""#json 不認單引號

#dct=str()#報錯,因為生成的資料還是單引號:

dct=''

print(json.loads(dct))

#conclusion:

# 無論資料是怎樣建立的,只要滿足json格式,就可以json.loads出來,不一定非要dumps的資料才能loads

2.序列化之pickle

注意:pickle的問題和所有其他程式語言特有的序列化問題一樣,就是它只能用

於python,並且可能不同版本的python彼此都不相容,因此,只能用pickle儲存

那些不重要的資料,不能成功地反序列化也沒關係。

import pickle

dic=

print(type(dic))#

j=pickle.dumps(dic)

print(type(j))#

f=open('序列化物件_pickle','wb')#注意是w是寫入str,wb是寫入bytes,j是'bytes'

f.write(j) #-------------------等價於pickle.dump(dic,f)

f.close()

#-------------------------反序列化

import pickle

f=open('序列化物件_pickle','rb')

data=pickle.loads(f.read())# 等價於data=pickle.load(f)

print(data['age'])

3.序列化之configparser

import configparser

config=configparser.configparser()

config.read('a.cfg')

#檢視所有的標題

res=config.sections() #['section1', 'section2']

print(res)

#檢視標題section1下所有key=value的key

options=config.options('section1')

print(options) #['k1', 'k2', 'user', 'age', 'is_admin', 'salary']

#檢視標題section1下所有key=value的(key,value)格式

item_list=config.items('section1')

print(item_list) #[('k1', 'v1'), ('k2', 'v2'), ('user', 'egon'), ('age', '18'), ('is_admin', 'true'), ('salary', '31')]

#檢視標題section1下user的值=>字串格式

val=config.get('section1','user')

print(val) #egon

#檢視標題section1下age的值=>整數格式

val1=config.getint('section1','age')

print(val1) #18

#檢視標題section1下is_admin的值=>布林值格式

val2=config.getboolean('section1','is_admin')

print(val2) #true

#檢視標題section1下salary的值=>浮點型格式

val3=config.getfloat('section1','salary')

print(val3) #31.0

改寫:import configparser

config=configparser.configparser()

config.read('a.cfg',encoding='utf-8')

#刪除整個標題section2

config.remove_section('section2')

#刪除標題section1下的某個k1和k2

config.remove_option('section1','k1')

config.remove_option('section1','k2')

#判斷是否存在某個標題

print(config.has_section('section1'))

#判斷標題section1下是否有user

print(config.has_option('section1',''))

#新增乙個標題

config.add_section('egon')

#在標題egon下新增name=egon,age=18的配置

config.set('egon','name','egon')

config.set('egon','age',18) #報錯,必須是字串

#最後將修改的內容寫入檔案,完成最終的修改

config.write(open('a.cfg','w'))

Python中的序列化和反序列化

python中的序列化和反序列化通常有兩種模組的使用 1 pickle模組 2 json模組 1 序列化 就是把不可傳輸的物件轉換為可儲存或可傳輸的過程 2 反序列化 就是把在磁碟,等介質中的資料轉換為物件 描述 對於大多數應用程式來講,dump 和load 函式的使用就是你使用pickle模組所需...

python中的序列化和反序列化

滴滴,什麼是序列呢?可以理解為序列就是字串。序列化的應用 序列化和反序列化的概念 序列化的目的 1.以某種儲存形式是自定義物件持久化 2.將物件從乙個地方傳遞到另乙個地方 3.使程式更具有維護性 各種模組的特點和應用 1.json模組 通用的序列化格式 只有很少的一部分資料型別通過json轉化為字串...

python 序列化模組 python 序列化模組

一 介紹 1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 二 序列號模組分類 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資...