python-day22(序列化)
序列化 把对象打散成二进制字节 bytes
一. pickle 把一个对象转化成bytes写入到文件 (重点)
pickle.dumps() 把对象转化成bytes
pickle.loads() 把bytes转化成对象
pickle.dump() 把对象转化成bytes, 写入到文件
pickle.load() 把文件中的bytes读取, 转化成对象
1 import pickle 2 # class hui(): 3 # def __init__(self,name,age): 4 # self.name = name 5 # self.age = age 6 # def hello(self): 7 # print('Hello World!') 8 # h = hui('hui',18) 9 10 # bs = pickle.dumps(h) #序列化一个对象 11 # print(bs,type(bs))#一堆二进制,看不懂 12 13 # hh = pickle.loads(bs) #把二进制反序列化成我们的对象 14 # print(hh,type(hh)) #对象中的成员 15 # print(hh.name) 16 17 # f = open('hui_pickle',mode='wb',) 18 # pickle.dump(h,f) #写入到文件中 19 20 # hh = pickle.load(open('hui_pickle',mode='rb')) #从文件中读取对象 21 # hh.hello() 22 23 # LST = [hui('A',1),hui('B',2),hui('C',3)] 24 # pickle.dump(LST,open('hui_pickle',mode='wb')) #写入到文件中 25 26 # f = open('hui_pickle',mode='rb') 27 # ls = pickle.load(f) #从文件中读取对象 28 # for i in ls: 29 # i.hello()
View Code
二. shelve 小型数据库, redis,mongodb,dict
当成字典来用
writeback = True
1 import shelve 2 3 # d = shelve.open("sylar") # 文件类型的字典 4 # d['wf'] = "汪峰" 5 # d.close() 6 # 7 # d = shelve.open("sylar") 8 # print(d['wf']) 9 # d.close() 10 11 # d = shelve.open("sylar") # 文件类型的字典 12 # d['wf'] = {"name":"汪峰", "age": 18, "wife":{"name":"章子怡", "hobby":"拍电影"}} 13 # d.close() 14 15 # d = shelve.open("sylar", writeback=True) # 文件类型的字典 wirteback把修改的内容自动的回写到文件中 16 # d['wf']['wife']['hobby'] = "当导师" # 改 17 # d.close() 18 19 # d = shelve.open("sylar") # 文件类型的字典 20 # print(d['wf']) 21 # d.close() 22 23 24 d = shelve.open("sylar") 25 for k, v in d.items(): 26 print(k, v) 27 print(type(d))
View Code
三. json 以前用xml 现在用json (重点)
json.dumps() 把字典转化成json字符串
json.loads() 把json字符串转化成字典
json.dump() 把字典转化成json字符串写入到文件
json.load() 把文件中的json字符串读取, 转化成字典
default = 把对象转化成字典, 需要自己写转化过程
object_hook = 把字典转化成对象. 需要自己写转化过程
ensure_ascii = False 可以处理中文
1 # json 2 import json 3 # dic = {'A':1,'大写':2} 4 # s = json.dumps(dic,ensure_ascii=False) #把字典转化成json字符串 5 # print(s,type(s)) 6 7 # ss = '{"A": 1, "大写": 2}' 8 # d = json.loads(ss) 9 # print(d,type(d)) 10 11 # json.dump(dic,open('hui_json',mode='w')) #把对象打散成json写入到文件中 12 # d = json.load(open('hui_json',mode='r')) #读取 13 # print(d,type(d)) 14 15 # lst = [{'尼1':1},{'尼2':2},{'尼3':3}] 16 # json.dump(lst,open('hui_json',mode='w',encoding='utf-8'),ensure_ascii=False) 17 # l = json.load(open('hui_json',mode='r',encoding='utf-8')) 18 # for i in l: 19 # print(i,type(i))
View Code
四. configparser 处理Windows 配置文件的 dict
1 import configparser 2 3 # config = configparser.ConfigParser() # 创建对象 4 # 5 # config['DEFAULT'] = { # 特殊 6 # "name":"腾讯qq木马", 7 # "time":"qq更新时间", 8 # "version":"1.0" 9 # } 10 # config['SERVER_1'] = {11 # "IP":"192.168.1.123", 12 # "port":"12306" 13 # } 14 # config['SERVER_2'] = {15 # "IP":"192.168.1.178", 16 # "port":"12311" 17 # } 18 # config['SERVER_3'] = {19 # "IP":"192.168.1.176", 20 # "port":"12312" 21 # } 22 # 23 # # 写入到文件 24 # config.write(open("qq.ini", mode="w", encoding="utf-8")) 25 26 27 # 读取内容 28 config = configparser.ConfigParser() 29 # 读取内容 30 config.read("qq.ini", encoding="utf-8") # 此时我们把文件中的内容读取到config 31 print(config['SERVER_1']['IP']) # 字典 32 print(config['SERVER_2']['name']) 33 print(config.get("SERVER_3", "IP")) # 字典 34 35 for k, v in config['DEFAULT'].items(): 36 print(k, v) 37 38 # config = configparser.ConfigParser() 39 # # 读取内容 40 # config.read("qq.ini", encoding="utf-8") # 此时我们把文件中的内容读取到config 41 # config['SERVER_1']['NAME'] = "哈哈哈" 42 # config.write(open("qq.ini", mode="w", encoding="utf-8"))
View Code
转载于:https://www.cnblogs.com/Thui/p/9966159.html
python-day22(序列化)相关推荐
- python的序列化是什么意思_python什么是反序列化?
python的序列化是把变量从内存中变成可存储或传输的过程,反序列化是把变量内容从序列化的对象重新读到内存的过程.方法是:1.导入pickle模块:2.利用pickle中的loads或load函数进行 ...
- python的序列化是什么意思_python 什么是对象序列化
我们知道在Python中,一切皆为对象,实例是对象,类是对象,元类也是对象.本文正是要聊聊如何将这些对象有效地保存起来,以供后续使用. pickle与cPickle pickle模块可以将Python ...
- [转载] pickle:让python对象序列化
参考链接: pickle - Python对象序列化 一.dump()方法 pickle.dump(obj, file, [,protocol]) 注释:序列化对象,将对象obj保存到文件file中去 ...
- python:marshal --- 内部 Python 对象序列化
python:marshal --- 内部 Python 对象序列化 此模块包含一此能以二进制格式来读写 Python 值的函数. 这种格式是 Python 专属的,但是独立于特定的机器架构(即你可以 ...
- python在读写文件之前需要创建文件对象-Python对象序列化写入文件对象
1.创建Python文件对象的读写模式(r,w模式)与创建Java输入输出流: FileInputStream inputStream=new FileInputStream(new File(&qu ...
- python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象
一:dat文件 在我之前的博客中,我介绍了对txt文件操作的一些相关知识,以及如何对其进行读写操作,也介绍了文本文件和二进制文件的一些区别.虽然对txt文件操作已经能够满足储存数据的需求,但txt文件 ...
- Python json序列化时default/object_hook指定函数处理
在Python中,json.dumps函数接受参数default用于指定一个函数,该函数能够把自定义类型的对象转换成可序列化的基本类型.json.loads函数接受参数objec_thook用于指定函 ...
- Python的序列化与反序列化
序列化和反序列化可以大致分为两类:文本序列化和二进制序列化.比如python提供的pickle库,他就是基于二进制方式的序列化.而json则是文本方式的序列化,需要遵守相应的文件格式. 由于pickl ...
- Python Json序列化与反序列化
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json ...
- python的序列化和反序列化
1. 什么是序列化? 当程序运行时,所有的变量或者对象都是存储到内存中的,一旦程序调用完成,这些变量或者对象所占有的内存都会被回收.而为了实现变量和对象持久化的存储到磁盘中或在网络上进行传输,我们需要 ...
最新文章
- UI培训分享:如何成为一名优秀的UI设计师
- 【青少年编程(第32周)】李老师太给力了!
- linux 用journalctl --vacuum-size=10M命令清理/var/log/journal目录下的日志文件
- 关于反射的我的一些看法
- sublime text3安装插件 emmet
- 南京航空航天大学计算机网课,南京航空航天大学课程教学大纲-南京航空航天大学计算机科学与技术(9页)-原创力文档...
- Elasticsearch 数据搜索篇
- app index.html,create-react-app搭建react开发环境中的public/index.html.
- 微软lync 持续服务器,Lync Server 2013 Front-End服务器服务不会启动很长时间
- Linux字体最好看的发行版,如何给任意一款 Linux 发行版添加漂亮的字体
- uniapp 调用阿里云OCR身份证识别
- 对丰田暴冲事故的软件调查报告——嵌入式软件工程师必看
- Redis实现邮件激活码保存
- WDF驱动开发- CONTEXT和IO QUEUE
- GO Web编程---网上书店(1)
- XMU毕业生总结写paper常用网站
- mui用ajax上拉加载更多,mui 中的一个上拉加载及下拉刷新的方法 ,但是我使用ajax拿不到url中的数据,是为什么?...
- 进程间同步---system v ipc 对象信号灯集
- 心态-《积极的力量》书中的精髓:如何保持积极乐观的心态,从而提升我们的幸福感?
- 知乎热议 | 何恺明 新作 如何?