1.pickle序列介绍:提供4个关键字:dumps,dump,loads,load

  语法:f.write(pickle.dumps(dict))=pickle.dump(dict,f)

     "r=pickle.loads(f.read())" = "r=pickle.load(f)

  将字典存入文件,由于字典格式不能转化成字节格式的,所以引入pickle

  A.将一个字典转化成pickle序列存入一个文件

import pickle
#import cPickle as pickle accounts={
1000:{
'name':'Tom',
'email':'22016311@qq.com',
'passwd':'abc123',
'balance':20000,
'phone':'44165465',
'bank_acc':{
'ICBC':165116161,
'CBC':16516516516,
'ABC':656151616516
}
},
1001:{
'name':'Tom1',
'email':'220116311@qq.com',
'passwd':'abc1123',
'balance':210000,
'phone':'441654165',
'bank_acc':{
'ICBC':16511161611,
'CBC':165165165161,
'ABC':6561516165161
}
}
} print (pickle.dumps(accounts)) #将字典转成pickle序列
f=open("account.db","wb") #写入文件account.db
f.write(pickle.dumps(accounts)) #写入文件account.db
#pickle.dump(accounts,f)
f.close()
-------------------------------------------------------------------
b'\x80\x03}q\x00(M\xe8\x03}q\x01(X\x04\x00\x00\x00nameq\x02X\x03\x00\x00\x00Tomq\x03X\x05\x00\x00\x00emailq\x04X\x0f\x00\x00\x0022016311@qq.comq\x05X\x06\x00\x00\x00passwdq\x06X\x06\x00\x00\x00abc123q\x07X\x07\x00\x00\x00balanceq\x08M NX\x05\x00\x00\x00phoneq\tX\x08\x00\x00\x0044165465q\nX\x08\x00\x00\x00bank_accq\x0b}q\x0c(X\x04\x00\x00\x00ICBCq\rJ\x01y\xd7\tX\x03\x00\x00\x00CBCq\x0e\x8a\x05\xa4\nv\xd8\x03X\x03\x00\x00\x00ABCq\x0f\x8a\x06\x04\x1c\xaf\xc5\x98\x00uuM\xe9\x03}q\x10(h\x02X\x04\x00\x00\x00Tom1q\x11h\x04X\x10\x00\x00\x00220116311@qq.comq\x12h\x06X\x07\x00\x00\x00abc1123q\x13h\x08JP4\x03\x00h\tX\t\x00\x00\x00441654165q\x14h\x0b}q\x15(h\r\x8a\x05\x0bU$\xd8\x03h\x0e\x8a\x05ij\x9ct&h\x0f\x8a\x06)\x18\xd7\xb8\xf7\x05uuu.'

  B.重新创建一个新的python文件读取account.db中的内容:

import pickle

account_file=open("account.db","rb")                   #打开文件
account_dict=pickle.loads(account_file.read()) #以pickle加载文件
#account_dict=pickle.load(account_file)
#print (account_dict)
account_file.close()
#print(type(account_dict[1000]['balance']))
account_dict[1000]['balance'] -= 500 #取字典中balance然后减500
print (account_dict) f=open("account.db","wb")
f.write(pickle.dumps(account_dict)) #将变更后的内容dumps入文件
f.close()
print (account_dict)
-----------------------------------------------------------------------------

{1000: {'name': 'Tom', 'email': '22016311@qq.com', 'passwd': 'abc123', 'balance': 19500, 'phone': '44165465', 'bank_acc': {'ICBC': 165116161, 'CBC': 16516516516, 'ABC': 656151616516}}, 1001: {'name': 'Tom1', 'email': '220116311@qq.com', 'passwd': 'abc1123', 'balance': 210000, 'phone': '441654165', 'bank_acc': {'ICBC': 16511161611, 'CBC': 165165165161, 'ABC': 6561516165161}}}
{1000: {'name': 'Tom', 'email': '22016311@qq.com', 'passwd': 'abc123', 'balance': 19500, 'phone': '44165465', 'bank_acc': {'ICBC': 165116161, 'CBC': 16516516516, 'ABC': 656151616516}}, 1001: {'name': 'Tom1', 'email': '220116311@qq.com', 'passwd': 'abc1123', 'balance': 210000, 'phone': '441654165', 'bank_acc': {'ICBC': 16511161611, 'CBC': 165165165161, 'ABC': 6561516165161}}}

二十五、python中pickle序列学习(仅python语言中有)的更多相关文章

  1. java web学习总结(二十五) -------------------JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  2. 【二十五】cookie与session学习总结

    一:cookie 1.创建cookie 关键字:setcookie 用于保存cookie 原理:当浏览器访问cookie.php页面时,我们的服务器就会以set-cookie的方式将cookie信息回 ...

  3. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  4. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  5. Python学习札记(二十五) 函数式编程6 匿名函数

    参考:匿名函数 NOTE 1.Python对匿名函数提供了有限的支持. eg. #!/usr/bin/env python3 def main(): lis = list(map(lambda x: ...

  6. 二十五. Python基础(25)--模块和包

    二十五. Python基础(25)--模块和包 ● 知识框架   ● 模块的属性__name__ # my_module.py   def fun1():     print("Hello& ...

  7. C#学习基础概念二十五问

    C#学习基础概念二十五问 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal ...

  8. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]

    原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...

  9. 剑指Offer(二十五):复杂链表的复制

    剑指Offer(二十五):复杂链表的复制 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...

随机推荐

  1. Java 接口和多态练习

    我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用 package com.biggw.day10.demo07; /** * @autho ...

  2. activemq热备与消息丢失

    1. 解压 tar -zxvf apache-activemq-5.12.0-bin.tar.gz2. 改名 mv apache-activemq-5.12.0 activemq3. cd activ ...

  3. 剑指offer-包含min函数的栈-栈和队列-python

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)).   # -*- coding:utf-8 -*- class Solution: de ...

  4. 数据结构课后练习题(练习一)1007 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  5. UVa 10294(polya 翻转与旋转)

    Arif in Dhaka(First Love Part 2) Input: standard input Output: standard output Time Limit: 2 seconds ...

  6. 苹果ios开发

    苹果上架:https://blog.csdn.net/pcf1995/article/details/79650345

  7. java集合类图详解

  8. jupyter安装

    1. 安装ipython, jupyter pip install ipython pip install jupyter 2.查看是否有配置文件 jupyter notebook --generat ...

  9. 正确理解MySQL中的where和having的区别

    原文:https://blog.csdn.net/yexudengzhidao/article/details/54924471 以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以 ...

  10. LAMP架构编译安装过程详解

    linux Git 安装 1.安装git依赖包 . yum install -y perl-ExtUtils-MakeMaker package . yum install -y tcl build- ...