常用模組json pickle

2022-08-27 15:00:11 字數 2570 閱讀 1952

把記憶體中的資料,轉換成位元組或字串的形式,以便於進行儲存或者

網路傳輸.

記憶體中資料 -> 位元組串/字串 : 序列化

位元組串/字串 -> 記憶體中的資料 : 反序列化

json :將資料轉換成字串,用於儲存或網路傳輸.

import json

s = json.dumps([1,2,3]) # 把指定的物件轉換成json格式的字串

print(type(s))

print(s) # '[1,2,3]' [1,2,3]

s = json.dumps((1,2,3)) # 元組序列化後,變成列表

print(s)

#json 不能序列換set型別

# res = json.dumps(set('abc')) # object of type 'set' is not json serializable

將json結果寫到檔案中

with open('a.txt',mode='at',encoding='utf-8') as f:

json.dump([1,2,3],f)

# res = json.dumps([1,2,3])

# lst = json.loads(res) # 反序列化

# print(type(lst))

# print(lst)

# 從檔案中反序列化

# with open('a.txt',encoding='utf-8')as f:

# res = json.load(f)

# print(type(res))

# print(res)

with open('json.txt',mode='at',encoding='utf-8') as f:

f.write(json.dumps([1,2,3]) + '\n')

f.write(json.dumps([4,5,5]) + '\n')

# 把分次序列化的json字串,反序列化回來

# with open('json.txt',mode='rt',encoding='utf-8') as f:

# res = json.loads(f.readline().strip())

# print(res)

# res2 = json.loads(f.readline().strip())

# print(res2)

# 使用迴圈改進:

# for x in f:

# print(json.loads(x.strip()))

將python中所有的資料型別.轉換成位元組串.序列化過程

將位元組串轉換成python中資料型別,反序列化過程.

import pickle

bys = pickle.dumps([1,2,3])

print(type(bys)) # print(bys) # b'\x80\x03]q\x00(k\x01k\x02k\x03e.'

所有的資料型別都可以進行序列化

bys = pickle.dumps(set('abc'))

res = pickle.loads(bys)

print(type(res))

# 把pickle序列化內容寫入檔案中

# with open('c.txt',mode='wb') as f:

# pickle.dump([1,2,3],f)

# 從檔案中反序列化pickle資料

# with open('c.txt',mode='rb') as f:

# res = pickle.load(f)

# print(type(res))

# print(res)

# 多次pickle資料到同乙個檔案中

# with open('c.txt',mode='ab') as f:

# pickle.dump([1,2,3],f)

# pickle.dump([1,2,3],f)

# pickle.dump([1,2,3],f)

# 從檔案中反序列化pickle資料

# with open('c.txt',mode='rb') as f:

# for x in range(4):

# res = pickle.load(f)

# print(res)

1.不是所有的資料型別都可以序列化.結果是字串.

2.不能多次對同乙個檔案序列化.

3.json資料可以跨語言

1.所有python型別都能序列化,結果是位元組串.

2.可以多次對同乙個檔案序列化

3.不能跨語言.

模組 序列化模組 json pickle

模組的形象 內建模組 安裝python直譯器的時候一起安裝上的 第三方模組 擴充套件模組 需要自己安裝 自定義模組 自己寫的py檔案 序列的物件 列表,元組,字串,bytes 序列化的定義 把乙個資料型別轉換成字串,bytes型別的過程 為什麼要把資料型別序列化 當你需要把乙個資料型別儲存在檔案中的...

json pickle資料序列化

json pickle資料序列化json 用於字串和python資料型別間進行轉換 pickle 用於python特有的型別 和 python的資料型別間進行轉換 序列化 把字典或者字串的記憶體物件 存到硬碟上 反序列化 就是從硬碟上載入出來序列化 把字典或者字串的記憶體物件 存到硬碟上 impor...

json pickle資料序列化

json pickle資料序列化json 用於字串和python資料型別間進行轉換 pickle 用於python特有的型別 和 python的資料型別間進行轉換 序列化 把字典或者字串的記憶體物件 存到硬碟上 反序列化 就是從硬碟上載入出來序列化 把字典或者字串的記憶體物件 存到硬碟上 impor...