Python json和pickle序列化

2021-08-17 10:00:42 字數 1533 閱讀 3177

1. 序列化:把記憶體的一些資料物件存到硬碟。資料物件是一些基本資料型別,如list dict,set等。

2. 反序列化:將硬碟的內容載入成原來的資料物件。

3. 為什麼要用序列化與反序列化:當你想把乙個資料暫時儲存起來而過會又要用的時候,就可以把它先儲存到硬碟,保證安全性。需要時在取出來。

4.  json序列化

一般將記憶體資料物件存到硬碟上的方法如下:  檔案只能存字串或二進位制

person=

f=open("test.text"

,"w")

f.write(str(person))

f.close

f=open("test.text"

,"r")

data=eval(f.read())

f.close

print(data['name'])

而json序列化的方法如下:

import json

#json

序列化person=

f=open("test.text"

,"w")

f.write(json.dumps(person)) #json.dumps()

將基本資料型別轉為

strf.close()

#json

反序列化

f=open("test.text"

,"r")

data=json.loads(f.read()) #json.loads()

將字串轉為基本資料型別

print(data['age'])

json序列化只支援簡單的資料轉化。

5. pickle序列化可對函式進行序列化。如下:

def 

hello(name):

print("hello world"

,name)

import pickle

person=

f=open("test.text"

,"wb")

f.write(pickle.dumps(person)) #pickle.dumps()

將資料型別轉為

strf.close()

#pickle

反序列化

f=open("test.text"

,"rb")

data=pickle.loads(f.read()) #pickle.loads()

將字串轉為資料型別

print(data['age'])

print(data["func"]("hhy"))

f.close()

函式序列化的是整個函式物件非函式名位址。pickle序列化只存在在python語言。而json與其他語言幾乎通用。

此外:

f.write(pickle.dumps(person))  #

等價於pickle.dump(person,f)

data=pickle.loads(f.read()) #

等價於data=pickle.load(f)

ladash 庫 pick和omit函式介紹

lodash 是常用的資料處理庫函式,今天專案中遇到 omit 就簡單寫一下使用方法。我們需要引入lodash,下面是 es6 中的引入方法 const require lodash object pick object,keys 函式返回乙個只有列入挑選key屬性的新物件。其中,引數object為...

Python JSON 基本操作

python version 3.4.4 測試資料 import json aa bb json模組提供的函式 json.dumps 和 json.loads 輸出 print bb data json.dumps bb print data load json.loads data print l...

python json轉化操作

usr bin python coding utf 8 import json import sys import os 重要函式 編碼 把乙個python物件編碼轉換成json字串 json.dumps 解碼 把json格式字串解碼轉換成python物件 json.loads def test00...