码迷,mamicode.com
首页 > Web开发 > 详细

json和pickle的序列化与反序列化

时间:2018-09-14 23:08:57      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:pen   序列   src   效果   class   dump   需要   color   完全   

(1)json的序列化

‘‘‘
Json序列化实现了把内存中的内容放到硬盘上,通过Json反序列化又把硬盘上的内容都回来的效果,用到的函数分别为json.dumps()和json.loads();(Json只支持简单的数据对象,例如字符串、字典、数组等。)
在python3中,json可以dump多次,但是只能load一次;所以使用json序列化时尽量只dump一次,只load一次,如果需要多次dump,每次都要dump到不同的文件夹中。
‘‘‘
import json

info={"name":"lhy",
      "age":18
      }
f=open(text.txt,w)
#f.write(json.dumps(info))
json.dump(info,f)
f.close()

序列化的结果:

text.txt文件中存入了:{"age": 18, "name": "lhy"}

(2)json的反序列化:

import json
f=open("text.txt",r)
data=json.loads(f.read())     #data=json.load(f)
print(data)
print(data[age])

反序列化的结果:

技术分享图片

(3)pickle序列化:

import pickle

def func_mini(name):
    print("hello",name)

f=open(text.txt,rb)
#data=pickle.loads(f.read())
data=pickle.load(f)
print(data)
print(data["func"](lhy))
f.close()

序列化的结果:

 技术分享图片

 

 

在text.txt文件中存入以下内容:

(4)pickle反序列化:

import pickle

def func_mini(name):
    print("hello",name)

f=open(text.txt,rb)
#data=pickle.loads(f.read())
data=pickle.load(f)
print(data)
print(data["func"](lhy))
f.close()

反序列化的结果:

技术分享图片

 

 Json序列化和pickle序列化用到的方法是完全一样的,不同之处是,json序列化可以用在其它语言中,而pickle序列化只能用在python语言中;json只能处理简单的数据对象,例如:列表、数组、字典等,而pickle可以处理任意数据对象。pickle序列化中文件的读写方式为”rb”,”wb”,json序列化中文件的读写模式即为“r”,”w”。

json和pickle的序列化与反序列化

标签:pen   序列   src   效果   class   dump   需要   color   完全   

原文地址:https://www.cnblogs.com/come-on-baby/p/9649124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!