1.pickle模块简介 The pickle module implements binary protocols for serializing and de-serializing a Python object structure. 大意是说:pickle模块是用来实现二进制存储对于python对象结构的的序列化和反序列化. 2.使用前导入模块 import pickle 3.创造要序列化的数据结构 如列表:my_list = [123,3.14,'小甲鱼',['another list…
一 什么是序列化 序列化指的是将内存中的数据结构转化为一种中间格式,并存储到硬盘上. (反序列化:将硬盘上存储的中间格式数据再还原为内存中的数据结构) 二 为什么要序列化 持久保持状态 需知一个软件/程序的运行就是处理一系列状态的变化,在编程语言中,'状态'会以各种有结构的数据类型(也可以称之为变量)的形式保存在内存中. 内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重启程序,内存中关于这个程序之前一段时间的数据都会被清空. 在断电或重启程序之前将程序当前运行的数据保存下来,便于下…
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了.所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值. import json x = "[null,true,false,1]" # print(eval(x)) #用eval会报错 print(json.loads(x)) # 用json就不会报错 什…
JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 由于需要在脚本重启后依旧能够记住之前所使用的列表内容, 故采用json存储列表文件, 经过测试, 如下代码可行. import json def write_json(jlist): # 将bx列表写入json文件 with open('data/bx_list.json', 'w') as f_obj: json.dump(jlist, f_obj) def read_jso…
列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一个list表示: stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] 索引(下标.角标)从0开始,0 1 2 3 4 5 6....最后一个元素的下标可以写-1 name = 'xiaohei,xiaobai,xiaohuang' 用字符串表示名字,但是多了不好…
Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系. #----------------------------序列化 import pickle dic={'name':'alvin','age':23,'sex':'male'} print(type(dic))#<class 'dict'> j=pickle.dumps(dic) prin…
"""Create portable serialized representations of Python objects. See module copyreg for a mechanism for registering custom picklers. See module pickletools source for extensive comments. Classes: Pickler Unpickler Functions: dump(object, fi…
#-*- coding:UTF-8 -*- #author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串,返回:<type 'str'> {'age':7,'name':'Zara','class':'First'} print (type(str(dict)),str(dict)) #字典可以转为元祖,返回:('age','name','class') print (tuple(dict) #字典可…
字符串     一个有序的字符集合  不可变 1,可以使用for in语句进行迭代循环,返回元素    2,in类是于str.find()方法但是是返回布尔结果        str.find()返回的是位置操作    查找字符串:        find 找不到返回-1        rfind    从右边        index    报错      都是从左边开始查找        rindex   从右边    统计字符串个数        count    替换字符串       …
和json不同的是: json只支持str,int,tuple,list,dict. pickle支持python里所有的数据类型,但是只能在python里序列化,不跨平台,python独有. 代码示例: import pickle # dump.dumps.load.loads和json里面的一样 d = {'name': 'alex', 'age': 22} l = [1, 2, 3, 4, 'rain'] print(pickle.dumps(d)) # 是bytes类型,加密了, 不可直…