序列化模块之 pickle 和 json
2015-12-03 12:05
671 查看
用于序列化的两个模块:
json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
首先,我们看看python pickle的序列化:
pickle模块实现了基本的数据序列和反序列化。
pickle模块,用于python特有的类型 和 python的数据类型间进行转换
pickle模块提供了四个功能:dumps、dump、loads、load,这里主要介绍pickle.dump()和pickle.load()
pickle.dump()
通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储.
pickle.load()
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象.
dump() 和 load() 示例:
python json 序列化:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,支持不同程序之间的数据转换.但是只能转换简单的类型如:(列表、字典、字符串、数字、)等,比如日期格式、类对象!json就不行了。
引用模块:
重要函数
编码:把一个Python对象编码转换成Json字符串 json.dumps()
解码:把Json格式字符串解码转换成Python对象 json.loads()
对简单数据类型的json.dumps()和 json.loads():
这里只是简单的用法,更多了解请百度...
json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
首先,我们看看python pickle的序列化:
pickle模块实现了基本的数据序列和反序列化。
pickle模块,用于python特有的类型 和 python的数据类型间进行转换
pickle模块提供了四个功能:dumps、dump、loads、load,这里主要介绍pickle.dump()和pickle.load()
pickle.dump()
通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储.
pickle.load()
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象.
dump() 和 load() 示例:
#使用pickle.dump()将数据对象保存到文件 import pickle //导入pickle模块 account_info = { //定义account_info字典 349622541 :['123','15000','15000','normal'], 838118461 :['passwd','9000','9000','lock'], } pkl_file = open('account.pkl','wb') //定义pkl文件 account.pkl wb表示以二进制写模式打开 pickle.dump(account_info,pkl_file) // 使用pickle.dump函数将account_info字典序列化为account.pkl文件. pkl_file.close() //关闭pkl_file文件
#使用pickle.load()从文件中重构python对象
import pickle pkl_file = open('account.pkl','rb') //rb表示以二进制读模式打开account.pkl文件. account_dic = pickle.load(pkl_file) print account_dic pkl_file.close() 9#如果修改了account_info里面的内容,则需要重新打开文件,再dump数据. 10 account_info['349622541'][1] = 18000 #修改字典里面的内容 11 account_info[''349622541''][2] = 2000 12 pkl_file.open('account.pkl','wb') #重新打开文件,再将修改的内容dump进去. 13 pickle.dump(account_info,pkl_file) 14 print account_dic 15 pkl_file.close()
python json 序列化:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,支持不同程序之间的数据转换.但是只能转换简单的类型如:(列表、字典、字符串、数字、)等,比如日期格式、类对象!json就不行了。
引用模块:
import json
重要函数
编码:把一个Python对象编码转换成Json字符串 json.dumps()
解码:把Json格式字符串解码转换成Python对象 json.loads()
对简单数据类型的json.dumps()和 json.loads():
import json obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}] p = json.dumps(obj) print repr(obj) print p ################################################################################# 输出: [[1, 2, 3], 123, 123.123, 'abc', {'key2': (4, 5, 6), 'key1': (1, 2, 3)}] [[1, 2, 3], 123, 123.123, "abc", {"key2": [4, 5, 6], "key1": [1, 2, 3]}] 通过输出的结果可以看出,简单类型通过encode之后跟其原始的repr()输出结果非常相似,但是有些数据类型进行了改变,例如上例中的元组则转换为了列表。在json的编码过程中,会存在从python原始类型向json类型的转化过程.
import json d= json.loads(p) print type(decodejson) print d[4]['key1'] print d ###################################### 输出: <type 'list'> [1, 2, 3] [[1, 2, 3], 123, 123.123, u'abc', {u'key2': [4, 5, 6], u'key1': [1, 2, 3]}] loads方法返回了原始的对象,但是仍然发生了一些数据类型的转化。比如,上例中‘abc’转化为了unicode类型
这里只是简单的用法,更多了解请百度...
相关文章推荐
- jsp ajax实例讲解
- 在jsp中运用ajax(简单入门)
- jsp 清除session的方法
- JavaScript碰到的几个方法
- js对象序列化和反序列化
- Ext js 新知识:grid.getSelectionModel()
- javascript基础
- js向jsp页面循环放值
- js对象的3个属性
- javascript显示年月日时间代码
- JS使用post提交的两种方式
- JSP response.sendRedirect不跳转的原因分析及解决
- 深入浅出JS的封装与继承
- js刷新页面方法大全
- javascript权威指南学习笔记-严格模式(六)
- JavaScript测试工具之Karma-Jasmine的安装和使用详解
- Jni string空串跨模块使用崩溃注意事项
- 五种js判断是否为整数类型方式
- js 模拟点击事件
- js 修改z-index的值