python 序列化與資料持久化

2022-01-31 17:06:48 字數 2078 閱讀 6837

資料持久化的方式有:

1.普通檔案無格式寫入:將資料直接寫入到檔案中

2.普通序列化寫入:json,pickle

3.dbm方式:shelve,dbm

反序列化:

print("

------json序列化--------")

import

json

import

time

info=

info2=['

1',2,3,4]

f=open("

test.txt

","w")

print("

---------dumps,---------

")#用'\n'來區分兩份資料

f.write(json.dumps(info)+"\n"

)f.write(json.dumps(info2)+"\n"

)f.close()

import

json

with open(

"test.txt

") as f:

a=json.loads(f.readline())

b=json.loads(f.readline())

print(a,b)

反序列化:

import

shelve,time

d = shelve.open('

shelve_test

') #

開啟乙個檔案

print("

----------寫----------")

info =

name = ["

autuman

", "

zhangsan

", "

lisi"]

d["teacher

"] =named["

student

"] =infod["

date

"] =time.ctime()

print("

--------讀------------")

print(d.get("

teacher"))

print(d.get("

student"))

print(d.get("

date"))

d.close()

shelve可以很方便的序列化自定義的資料型別、函式:

import

shelve,time

class

a:

defhello(self):

print("

123"

)d = shelve.open('

shelve_test

') #

開啟乙個檔案

print("

----------寫----------")

d['class

'] =a

print("

--------讀------------")

a=d.get('

class

')()

a.hello()

d.close()

寫入:dbm物件[key]=value

讀取: dbm物件[key]

import

dbmdb=dbm.open("

test.txt

","c")

print("

寫".center(50,'-'

))db[

"name

"]="

1111111111112

"db[

"name2

"]="

2222222222222

"print("

讀".center(50,'-'

))print(db["

name"])

print(db["

name2"])

db.close()

Python序列化與持久化

資料持久化可以將資料儲存到檔案中,資料庫中。儲存到檔案中可以是普通txt檔案,csv檔案等,資料庫可以是sql資料庫mongodb資料庫等 變數從記憶體中變成可儲存或傳輸的過程稱之為序列化,在python中叫pickling 變數內容從序列化的物件重新讀到記憶體裡稱之為反序列化,即unpicklin...

Python序列化與反序列化

序列化 將python裡的基本型別如字典 列表 陣列等序列化為字串 反序列化 將字串反序列化為python裡的基本型別如字典 列表等 常用 json r requests.get 杭州 r.encoding utf 8 print r.text print dic json.loads r.text...

ejb 持久化序列化物件

從客戶端 將使用者物件新增到 ejb 伺服器上 user 物件需要序列化 實現 serializable介面 public class user implements serializable public void setid int id public string getname public...