1.pickle模块

pickle.dumps() 和pickle.loads()

import pickle

f = open('112.pkl','w')
a = {'name':2,2:3,3:4,4:5}
print(pickle.dumps(a),type(pickle.dumps(a)))
import pickle

a = {'name':2,2:3,3:4,4:5}

b = pickle.dumps(a)
print(pickle.loads(b))

pickle.dump() 和pickle.load() 这里和json的区别在于pickle直接转换成字节(bytes),json直接转换成字符串。pickle应用wb,rb这些打开二进制文件。  

import pickle

f = open('112.pkl','wb')
a = {'name':2,2:3,3:4,4:5} b = pickle.dump(a,f) print(b,type(b))
import pickle

f = open('112.pkl','rb')

b = pickle.load(f)

print(b)

  

2.那么json和pickle这么相似,到底为什么还要存在两个类型差不多的模块?

①·因为json模块只能用于str,dict,tuple,list,int.只能将这些数据类型转换成字符串。

 而pickle可以将所有的数据类型转换为字符串,包括函数(下面有举例)

②·但是json模块可以用于跨语言传递字符串,而pickle只能在python里使用,语言局限性大。

用json转换函数,报错函数不可序列化。

import pickle,json

def sayhi():
print("hello world") f = open('113.json','w') a = json.dump(sayhi,f) # TypeError: Object of type 'function' is not JSON serializable

用pickle转换函数,不会报错

import pickle,json

def sayhi():
print("hello world") f = open('113.json','wb') a = pickle.dump(sayhi,f)

  

  

  

  

序列化pickle模块的更多相关文章

  1. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

  2. Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块

    sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...

  3. 序列化 pickle模块

    1. pickle 简介 2. pickle 核心函数 3. pickle 高级 -- 复杂对象 1. 持久化与 pickle 简介 1.1 什么是持久化? 持久化的基本思想很简单.假定有一个 Pyt ...

  4. os模块、sys模块、json模块、pickle模块、logging模块

    目录 os模块 sys模块 json模块 pickle模块 logging模块 os模块 功能:与操作系统交互,可以操作文件 一.对文件操作 判断是否为文件 os.path.isfile(r'路径') ...

  5. 各类模块的粗略总结(time,re,os,sys,序列化,pickle,shelve.#!json )

    ***collections 扩展数据类型*** ***re 正则相关操作 正则 匹配字符串*** ***time 时间相关 三种格式:时间戳,格式化时间(字符串),时间元组(结构化时间).***`` ...

  6. Pythoy 数据类型序列化——json&pickle 模块

    Pythoy 数据类型序列化--json&pickle 模块 TOC 什么是序列化/反序列化 pickle 模块 json 模块 对比json和pickle json.tool 命令行接口 什 ...

  7. [python](windows)分布式进程问题:pickle模块不能序列化lambda函数

    运行错误:_pickle.PicklingError: Can't pickle <function <lambda> at 0x000002BAAEF12F28>: attr ...

  8. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

  9. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

随机推荐

  1. 对于iOS 7 隐藏特性和解决之道

    当 iOS7 刚发布的时候,全世界的苹果开发人员都立马尝试着去编译他们的app,接着再花上数月的时间来修复任何出现的故障,甚至重做app.这样的结果,使得人们根本无暇去探究 iOS7 所带来的新东西. ...

  2. MYSQL进阶学习笔记十一:MySQL 表的分析,检查和优化!(视频序号:进阶_28)

    知识点十二:MySQL 表的分析,检查和优化(28) 表的分析,检查和优化: 定期分析表: ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, ...

  3. 出现ImportError: No module named win32api异常

    ImportError: No module named win32api出现异常 实际是需要安装和自己python兼容的win32all 在http://starship.python.net/cr ...

  4. UVaLive 7456 Least Crucial Node (并查集+暴力 或者 求割点)

    题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判 ...

  5. Codeforces 702B【二分】

    题意: 给一个a数组,输出有多少对相加是等于2^x的.1<=a[i]<=1e9,n<=1e5 思路: a[i]+a[j]=2^x 对于每个a[i],枚举x,然后二分查找a[j]; p ...

  6. pojcoin【未完待续】

    题意: 给你一些数字的种类,然后拥有这个种类的各个数量,输出可以组成多少数字,数字范围在1-m: 思路: 卧槽好难-

  7. bzoj 4259 4259: 残缺的字符串【FFT】

    和bzoj 4503 https://www.cnblogs.com/lokiii/p/10032311.html 差不多,就是再乘上一个原串字符 有点卡常,先在点值下算最后一起IDFT #inclu ...

  8. 洛谷P3209 [HNOI2010]平面图判定(2-SAT)

    传送门 看到哈密顿回路就被吓傻了……结果没有好好考虑性质…… 首先,平面图有个性质:边数小于等于$3n-6$(我也不知道为啥),边数大于这个的直接pass 然后考虑原图,先把哈密顿回路单独摘出来,就是 ...

  9. noip 2012 Day2 T2 借教室

    一.暴力简述 甩链接.jpeg 首先我们不难看出,这道题————并不是一道多难的题,因为显然,第一眼看题目时便很容易地想到暴力如何打:枚举每一种订单,然后针对每一种订单,对区间内的每一天进行修改(做减 ...

  10. robotframework自动化系列:文本类型的下拉框

    对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select ...