序列化 把对象打散成二进制字节 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(序列化)相关推荐

  1. python的序列化是什么意思_python什么是反序列化?

    python的序列化是把变量从内存中变成可存储或传输的过程,反序列化是把变量内容从序列化的对象重新读到内存的过程.方法是:1.导入pickle模块:2.利用pickle中的loads或load函数进行 ...

  2. python的序列化是什么意思_python 什么是对象序列化

    我们知道在Python中,一切皆为对象,实例是对象,类是对象,元类也是对象.本文正是要聊聊如何将这些对象有效地保存起来,以供后续使用. pickle与cPickle pickle模块可以将Python ...

  3. [转载] pickle:让python对象序列化

    参考链接: pickle - Python对象序列化 一.dump()方法 pickle.dump(obj, file, [,protocol]) 注释:序列化对象,将对象obj保存到文件file中去 ...

  4. python:marshal --- 内部 Python 对象序列化

    python:marshal --- 内部 Python 对象序列化 此模块包含一此能以二进制格式来读写 Python 值的函数. 这种格式是 Python 专属的,但是独立于特定的机器架构(即你可以 ...

  5. python在读写文件之前需要创建文件对象-Python对象序列化写入文件对象

    1.创建Python文件对象的读写模式(r,w模式)与创建Java输入输出流: FileInputStream inputStream=new FileInputStream(new File(&qu ...

  6. python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象

    一:dat文件 在我之前的博客中,我介绍了对txt文件操作的一些相关知识,以及如何对其进行读写操作,也介绍了文本文件和二进制文件的一些区别.虽然对txt文件操作已经能够满足储存数据的需求,但txt文件 ...

  7. Python json序列化时default/object_hook指定函数处理

    在Python中,json.dumps函数接受参数default用于指定一个函数,该函数能够把自定义类型的对象转换成可序列化的基本类型.json.loads函数接受参数objec_thook用于指定函 ...

  8. Python的序列化与反序列化

    序列化和反序列化可以大致分为两类:文本序列化和二进制序列化.比如python提供的pickle库,他就是基于二进制方式的序列化.而json则是文本方式的序列化,需要遵守相应的文件格式. 由于pickl ...

  9. Python Json序列化与反序列化

    在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json ...

  10. python的序列化和反序列化

    1. 什么是序列化? 当程序运行时,所有的变量或者对象都是存储到内存中的,一旦程序调用完成,这些变量或者对象所占有的内存都会被回收.而为了实现变量和对象持久化的存储到磁盘中或在网络上进行传输,我们需要 ...

最新文章

  1. UI培训分享:如何成为一名优秀的UI设计师
  2. 【青少年编程(第32周)】李老师太给力了!
  3. linux 用journalctl --vacuum-size=10M命令清理/var/log/journal目录下的日志文件
  4. 关于反射的我的一些看法
  5. sublime text3安装插件 emmet
  6. 南京航空航天大学计算机网课,南京航空航天大学课程教学大纲-南京航空航天大学计算机科学与技术(9页)-原创力文档...
  7. Elasticsearch 数据搜索篇
  8. app index.html,create-react-app搭建react开发环境中的public/index.html.
  9. 微软lync 持续服务器,Lync Server 2013 Front-End服务器服务不会启动很长时间
  10. Linux字体最好看的发行版,如何给任意一款 Linux 发行版添加漂亮的字体
  11. uniapp 调用阿里云OCR身份证识别
  12. 对丰田暴冲事故的软件调查报告——嵌入式软件工程师必看
  13. Redis实现邮件激活码保存
  14. WDF驱动开发- CONTEXT和IO QUEUE
  15. GO Web编程---网上书店(1)
  16. XMU毕业生总结写paper常用网站
  17. mui用ajax上拉加载更多,mui 中的一个上拉加载及下拉刷新的方法 ,但是我使用ajax拿不到url中的数据,是为什么?...
  18. 进程间同步---system v ipc 对象信号灯集
  19. 心态-《积极的力量》书中的精髓:如何保持积极乐观的心态,从而提升我们的幸福感?
  20. 知乎热议 | 何恺明 新作 如何?

热门文章

  1. 采用矩阵+深度优先算法解决迷宫问题
  2. Codeforces Round #335 (Div. 2)
  3. java软件工程师成长过程的学习
  4. 借双慧眼识别钓鱼欺诈网站
  5. Axure RP Extension for Chrome安装
  6. MySQL基本语句与数据类型
  7. hud 5929.Basic Data Structure
  8. XML学习笔记之XML的简介
  9. DOM修改元素的方法总结
  10. [bzoj2506] calc