码迷,mamicode.com
首页 > 其他好文 > 详细

序列化

时间:2018-08-09 23:18:48      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:bsp   数字   不能   port   open   文件中   eof   需要   强制   

序列化

  将字典\列表等数据类型转换成字符串的过程叫做序列化

序列化的目的

  1.以某种存储形式使自定义对象持久化

  2.讲对象从一个地方传递到另一个地方

  3.使程序更具维护性

  技术分享图片

json模块提供了四个功能:dumps\dump\loads\load

  json是一种所有的语言都可以识别的数据结构

  json格式的key必须是字符串数据类型(字典)

  json格式中的字符串只能是双引号

  如果是数字为key,那么dump之后会强行转换成字符串数据类型(字典)

  json中对元祖做value的字典会把元祖强制转换成列表

  json不支持元祖做key 会报错

  dumps 序列化:将一个字典转换成一个字典  也可以处理嵌套的数据类型

  技术分享图片

  技术分享图片

  loads  反序列化:将一个字符串格式的字典转换成字典   也可以处理嵌套的数据类型

  技术分享图片

  技术分享图片

  dump  方法接收一个文件句柄,直接将字典转成json字符串写入文件,能多次dump数据到文件里,但是不能load出来了,想多个数据进文件用dumps

  load 方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  set不能进行dump、load操作

import  pickle

  dump的结果是bytes,dump用的f 文件句柄需要以wb的形式打开,load所用的f是rb模式

  支持几乎所有对象的序列化

  对于对象的序列化需要这个对象的类在内存中

  对于多次dump/load的操作做了良好的处理

  pickle模块来存储每个学员的对象

  

with open(‘pickle_demo‘,‘rb‘) as f:
while True:
try:
print(pickle.load(f))
except EOFError:
break

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

import  shelve  专门处理文件

  技术分享图片

  技术分享图片

  

  

序列化

标签:bsp   数字   不能   port   open   文件中   eof   需要   强制   

原文地址:https://www.cnblogs.com/wjs521/p/9451952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!