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. [CQOI2014]数三角形 题解(组合数学+容斥)

    [CQOI2014]数三角形 题解(数论+容斥) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1328780 链接题目地址:洛谷P3166 BZOJ 350 ...

  2. zebra代码分析

    http://blog.csdn.net/xuyanbo2008/article/details/7439738

  3. anconda下安装opencv

    提示:如果你安装了python其它版本,或者在anaconda中创建了虚拟环境,应该先激活你的环境,然后再在命令窗口执行下面的操作 1.首先下载所需镜像文件: 我们需要上网站去下载我们需要的版本. 官 ...

  4. B - 卿学姐与基本法 (离散化+成段更新+区间求和)

    卿学姐与基本法 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  5. 数学: HDU Co-prime

    Co-prime Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Subm ...

  6. idea无法使用注解@Data解决方法

    @Data相关依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  7. Win10 + Ubuntu 安装教程(痛苦踩坑)

    今天搞了一天,痛苦万分,本文的教程基本适用大部分情况,现在记录下需要主义的几点: 一.制作ubuntu usb安装盘的时候,格式要选saw的,千万不要用usb-HDD+的 二.安装完后使用EasyBC ...

  8. Codeforces 955 LR询问 多次幂处理

    A 模拟题 #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) ...

  9. hdu2955_Robberies 01背包

    有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到.已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率.求他最多能偷到多少钱? 解:以概率为价值 问价值在合理范围背包的最大容量 ...

  10. ascii 八进制

    int main() 4 { 5 char buf[20] = {'\101','\102','\103',0}; 6 printf("%s",buf); 7 return 0; ...