学习python第十一天,函数3 函数的序列化和反序列化
我们把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。
一、存文件,序列化
info = {
'name':'alex',
'age':22 }
f =open("test.text","w")#存文件
f.write(str(info))
f.close()
二、取文件 反序列化
f =open("test.text","r")#以写的形式打开存文件
data=f.read()
f.close()
print(data)
三、如果要把字符串变字典单独取age值
data=eval(f.read())
print(data['age'])
四、使用模块序列化,高级版的序列化json+dumps
import json
f =open("test.text","w")#存文件,序列化
#print(json.dumps(info))
f.write(json.dumps(info))
f.close()
四-(1)使用模块序列化,序列化两次json+dumps
import json
info = {
'name':'alex',
'age':22 }
f =open("test.text","w")#存文件,序列化
#print(json.dumps(info))
f.write(json.dumps(info))
info['age']=21 #修改age
f.write(json.dumps(info))
f.close()
使用模块序反列化,没办法反序列化两个字典
五、使用模块高级版的反序列化json+ loads
import json
f =open("test.text","r")#取文件,反序列化
#print(json.dumps(info))
data=json.loads(f.read())
print(data['age'])
f.close()
六,处理更加复杂的数据的序列化使用picke+dumps+loads
import pickle
def sayhi(name):
print("hello,",name)
info = {
'name':'alex',
'age':22,
'func':sayhi
}
f =open("test.text","wb")#默认为二进制需改wb
f.write(pickle.dumps(info))
print(pickle.dumps(info))
f.close()
七,处理更加复杂的数据的序列化使用picke+dump+loads
import pickle
def sayhi(name):
print("hello,",name)
info = { 'name':'alex',
'age':22,
'func':sayhi}
f = open("test.text","wb")
pickle.dump(info,f) #=f.write( pickle.dumps( info) )
f.close()
学习python第十一天,函数3 函数的序列化和反序列化的更多相关文章
- 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
- python基础之继承组合应用、对象序列化和反序列化,选课系统综合示例
继承+组合应用示例 1 class Date: #定义时间类,包含姓名.年.月.日,用于返回生日 2 def __init__(self,name,year,mon,day): 3 self.name ...
- [Python学习] python 科学计算库NumPy—tile函数
在学习knn分类算法的过程中用到了tile函数,有诸多的不理解,记录下来此函数的用法. 函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 其中A和reps都是ar ...
- python六十一课——高阶函数之reduce
2).reduce(fn,lsd): 参数一:fn --> 函数对象 参数二:lsd --> 序列对象 功能: 先将lsd中的第一和第二个元素去除传入到fn中参与运算, 运算后得到结果,再 ...
- 【Python】Java程序员学习Python(十一)— IO
一.前言 io的内容其实还是有很多的,现在我也只是了解初步用法,当然详细内容还是应该参照官方api的: 官方api:https://docs.python.org/3/library/os.html. ...
- Python基础学习参考(三):内置函数
一:内置函数 在第一篇文章中,我们简单的认识了一下print()函数和input()函数,也就是输入和输出,这些函数我们可以直接的调用,不要自己定义或者引入什么,对吧?想这样的函数就叫做内置函数.这里 ...
- python学习day4之路文件的序列化和反序列化
json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...
- 【Python】python学习文件的序列化和反序列化
json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...
- 学习python的日常6
错误.调试和测试: 错误处理: try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionError as e: p ...
随机推荐
- 基于表单布局:分析过时的table结构与当下的div结构
一些话在前面 最近做了百度前端学院一个小任务,其中涉及到表单布局的问题, 它要处理的布局问题:左边的标签要右对齐,右边的输入框.单选按钮等要实现左对齐. 从开始入门就被告知table布局已经过时了,当 ...
- 【起航计划 015】2015 起航计划 Android APIDemo的魔鬼步伐 14 App->Activity->Translucent Blur 模糊背景
这个例子和Translucent不同的一点是Blur,也就是显示在当前Activit背后的其它Activity以模糊方式显示. 这是通过window对象Flag来设置的. // Have the sy ...
- centreon-engine 性能调优
http://documentation.centreon.com/docs/centreon-engine/en/latest/user/configuration/best_practice.ht ...
- Java获取Date类型-针对SQL语句
简便使用Date类型: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedState ...
- MySQL入门很简单: 14MySQL日志
二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...
- 使用ABAP代码创建S/4HANA里的Sales Order
下图是使用ABAP代码创建的S/4HANA的Sales Order的截图: 其中红色区域的值是我代码里硬编码的,而蓝色是函数SD_SALESDOCUMENT_CREATE自己创建的. 来看下代码: D ...
- IOS 制作版本新特性
创建版本新特性 页面(存放图片) HMNewfeatureViewController.m #define HMNewfeatureImageCount 4 #import "HMNewfe ...
- Codeforces 758B Blown Garland
题目链接:http://codeforces.com/contest/758/problem/B 题意:一个原先为4色环的链子少了部分,要你找出死的最少的一种可能,各输出四种颜色的死了多少. 分析:就 ...
- 广搜破解密码(HDU1195)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1195 解题报告: #include<iostream> #include<cstdi ...
- Next K Permutation
3457: Next K Permutation 时间限制: 1 Sec 内存限制: 128 MB提交: 4 解决: 4[提交] [状态] [讨论版] [命题人:admin] 题目描述 n 个数有 ...