python--json与pickle序列化

Posted wangzihong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--json与pickle序列化相关的知识,希望对你有一定的参考价值。

json & pickle 模块

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

#json只能处理简单的数据类型 可以和其它语言进行交互
#json不同平台数据处理进行交互
#用json实现存入数据和读取数据
#序列化 存入数据
info = {
    name:python,
    age:30
}
import json
f = open("test",w)
# f.write(str(info)) #str变为字符串
f.write(json.dumps(info))

#反序列化 读取数据
import json
f = open("test",r)
data = json.loads(f.read())
print(data["age"])

#pickle 处理复杂的 可以序列化所有的数据类型
#序列化
import pickle
def saihi(name):
    print("hello",name)
info = {
    name:python,
    age:30,
    func:saihi
}
f = open("test",wb)
# f.write(str(info)) #str变为字符串
f.write(pickle.dumps(info))
#反序列化
import pickle
def saihi(name):
    print("hello",name)
    print("hello1",name)
f = open("test",rb)
data = pickle.loads(f.read())
print(data["func"]("python"))

#pickle 中dump 同dumps实现效果一样 
import pickle
def saihi(name):
    print("hello",name)
info = {
    name:python,
    age:30,
    func:saihi
}
f = open("test",wb)
pickle.dump(info,f)
f.close()

#pickle中load
import pickle
def saihi(name):
    print("hello",name)
    print("hello1",name)
f = open("test",rb)
data = pickle.load(f)

#序列化 用json dump两次
import json
info = {
    name:python,
    age:30,
}
f = open("test",w)
f.write(json.dumps(info))
info[age] = 22
f.write(json.dumps(info))
f.close()

#注:只dump一次load一次 如虚拟机中快照 

 

以上是关于python--json与pickle序列化的主要内容,如果未能解决你的问题,请参考以下文章

python3--json与pickle数据序列化

python --- json模块和pickle模块详解

python json and pickle

python json and pickle

python:Json & pickle数据序列化

Python json和pickle模块