一. 序列化

1 定义: 在我们存储数据或者⽹网络传输数据的时候. 需要对我们的对象进⾏行行处理理. 把对象处理理成 ⽅方便便存储和传输的数据格式. 这个过程叫序列列化. 不同的序列列化, 结果也不同. 但是⽬目的是⼀一 样的. 都是为了了存储和传输.

2 方案 :

1. pickle. 可以将我们python中的任意数据类型转化成bytes并写入到⽂文件中.  同样也 可以把⽂文件中写好的bytes转换回我们python的数据. 这个过程被称为反序列列化

  1. import pickle
  2. class Notebook:
  3. def __init__(self, page, size):
  4. self.page = page
  5. self.size =size
  6. def remenber(self):
  7. print("记录笔记!")
  8.  
  9. n = Notebook(100, "A5")
  10. s = pickle.dumps(n)
  11. s_n = pickle.loads(s)
  12. print(s_n.page)
  13.  
  14. with open("pick_test", mode="w+b") as f:
  15. pickle.dump(n, f)
  16. pickle.dump(n, f)
  17. f.seek(0)
  18. print(pickle.load(f).size)
  19. print(pickle.load(f).size)

2. shelve. 简单另类的⼀一种序列列化的⽅方案. 有点⼉儿类似后⾯面我们学到的redis. 可以作为 ⼀一种⼩小型的数据库来使⽤用

  1. s = shelve.open("shel_test",writeback=True)
  2. s["a"] = "鲁迅"
  3. print(s["a"])
  4. s["a"] = "大白" # 因有writeback=True, 所以可以直接改写文件
  5. print(s["a"])
  6. for i in s: # 和字典一样可以循环哪key和value
  7. print(i)
  8. s.close()

3. json. 将python中常⻅见的字典, 列列表转化成字符串串. 是⽬目前前后端数据交互使⽤用频率 最⾼高的⼀一种数据格式.

  1. s = json.dumps(dic, ensure_ascii=False)
  2. print(s)
  3. print(type(s))
  4. re = json.loads(s, encoding="utf-8")
  5. print(re)
  6. print(type(re))
  7. print(re["演员"])
  8.  
  9. with open("json_test", mode="w+",encoding="utf-8") as fj:
  10. json.dump(dic, fj, ensure_ascii=False)
  11. fj.write("\n")
  12. json.dump(dic, fj, ensure_ascii=False)
  13.  
  14. with open("json_test", mode="r", encoding="utf-8") as fr:
  15. st = fr.readline().strip()
  16. ret = json.loads(st, encoding="utf-8")
  17. print(ret)
  18. print(type(ret))

configparser模块    该模块适⽤用于配置⽂文件的格式

  1. conf = configparser.ConfigParser()
  2. conf["DEFAULT"] = { "ip": "192.168.1.1",
  3. "port": 3306
  4.  
  5. }
  6.  
  7. conf["A"] = { "ip": "192.168.1.2",
  8. "port": 3306
  9.  
  10. }
  11. conf["B"] = { "ip": "192.168.1.2",
  12. "port": 3306
  13.  
  14. }
  15. conf["C"] = { "ip": "192.168.1.2",
  16. "port": 3306
  17.  
  18. }
  19.  
  20. with open("configp_test", mode="w", encoding="utf-8") as f:
  21. conf.write(f)
  22.  
  23. conf.read("configp_test")
  24. print(conf.sections()) # 拿到章节名
  25. print(conf.get("A", "ip")) # 拿章节里面的ip
  26. for i in conf["A"]: # 循环章节
  27. print(i) # 打印章节 内容中的信息key
  28. print(conf["A"]["ip"]) # value

python序列化的更多相关文章

  1. python 序列化之JSON和pickle详解

    JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...

  2. Python序列化和反序列化

    Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...

  3. python序列化pickle/cPickle

    一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...

  4. python序列化与反序列

    python序列化与反序列 在python中提供了两个模块可进行序列化.分别是pickle和json.他们两者的功能都差不多,dumps和dump都是进行序列化,而loads和load则是反序列化. ...

  5. Python 序列化pickle/cPickle模块整理

    Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...

  6. 学习笔记:Python序列化常用工具及性能对比

    什么叫序列化?简单来讲就是将内存中的变量数据转而存储到磁盘上或是通过网络传输到远程. 反序列化是指:把变量数据从序列化的对象重新读到内存里. 下面我们一起来看看,python里面序列化常用的json. ...

  7. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

  8. Python 序列化与反序列化

    序列化是为了将内存中的字典.列表.集合以及各种对象,保存到一个文件中(字节流).而反序列化是将字节流转化回原始的对象的一个过程. json库 序列化:json.dumps() 反序列化:json.lo ...

  9. python 序列化 json pickle

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  10. Python序列化之json与pickle

    1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

随机推荐

  1. 【CF1141F1】Same Sum Blocks

    题目大意:给定一个 N 个值组成的序列,求序列中区间和相同的不相交区间段数量的最大值. 题解:设 \(dp[i][j]\) 表示到区间 [i,j] 时,与区间 [i,j] 的区间和相同的不相交区间数量 ...

  2. Linux基本命令总结(三)

    接上篇: 11,more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示 ...

  3. MySQL常用的一些函数

    内容太多,走链接: MySQL函数大全

  4. 异步ztree 加复选框 及相应后台处理

    异步加载 tree,点一下节点,就发一下请求到后台,然后显示出得到的当前层级节点 <!DOCTYPE html> <html> <head> <meta ch ...

  5. 自定义QMenu

    参考: http://blog.csdn.net/qq1623803207/article/details/77449884 http://blog.sina.com.cn/s/blog_a6fb6c ...

  6. hdu 2973"YAPTCHA"(威尔逊定理)

    传送门 题意: 给出自然数 n,计算出 Sn 的值,其中 [ x ]表示不大于 x 的最大整数. 题解: 根据威尔逊定理,如果 p 为素数,那么 (p-1)! ≡ -1(mod p),即 (p-1)! ...

  7. logistics回归简单应用——梯度下降,梯度上升,牛顿算法(一)

    警告:本文为小白入门学习笔记 由于之前写过详细的过程,所以接下来就简单描述,主要写实现中遇到的问题. 数据集是关于80人两门成绩来区分能否入学: 数据集: http://openclassroom.s ...

  8. 微信小程序:import导入公共文件方式

    wxss: @import "../common/ali_icon.wxss"; wxml: 公共文件(位置:../common/head.wxml)如下---- <temp ...

  9. 干货分享:互联网运营 学习SEO从零开始 SEO深度解析学习笔记

    最近在自学SEO,互联网运营,把做的笔记干货分享给大家啊! 希望能帮到大家,如有好的建议可以关注我[磨人的小妖精]或留言,大家一起探讨. 之前还写过一篇文章互联网运营+SEO:推荐必看的5本书籍,学习 ...

  10. 怎么停止yum安装并kill进程

    1. ctrl + z 2. ps -ef | grep 正在安装的包名称 3. kill -9 进程Id