鱼C论坛

 找回密码
 立即注册
查看: 2777|回复: 1

求問pickle和json的區別

[复制链接]
发表于 2017-4-7 19:48:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大佬好,在做文件的永久存儲的時候,小甲魚老師的課程調用pickle使用方法pickle.dump()和pickle.load()對文件進行存儲和讀取,小可在閲讀另外一本基礎書籍的時候,作者在文件存儲的這一塊,調用了json使用了方法json.dump()和json.load()對文件進行存儲和讀取,那麽是否可理解為庫pickle和庫json實現的一樣的功能,還是恰巧只是兩個庫的方法一樣?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-7 19:53:56 | 显示全部楼层
'''
Pickle序列化
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
'''

'''
基本接口:

pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;
1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。
protocol默认值为0。
file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个
StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。


pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。
'''
#dump
import pickle
name_list = {
    'L':[1,2,3,4],
    'D':{'name':'biggerl','age':27},
     'S':'biggerl'
}
f=open(r'c:\Users\admin\Desktop\user.pkl','wb')
pickle.dump(name_list,f)
f.close()


#load
import pickle
f=open(r'c:\Users\admin\Desktop\user.pkl','rb')
D=pickle.load(f)
D
{'L': [1, 2, 3, 4], 'D': {'age': 27, 'name': 'biggerl'}, 'S': 'biggerl'}



#--------------------------------
#Json pickle 更通用,pickle只适合于python。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-12 08:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表