一、json  模块

  1、定义

    将字典、列表等内容转换成字符串的过程就是序列化。

    操作的数据类型有限,但是可以支持所有编程语言操作。

  

  2、为什么要有序列化?

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

    2、将对象进行传递

    3、是程序更具维护性

  3、四大功能  (dumps,loads,dump,load)

    dumps  loads

  

import    josn
lst = ['aa'', 11, 'b3']
ret = json.dumps(lst) # 序列化
print(ret)
ret1 = json.loads(ret) # 反序列化
print(ret1)

    dump  load

import json
with open ('t1.txt',mode='w',encoding= 'utf-8') as f:
json.dump(lst, f) # 序列化
# dump 用于直接将序列化的字符串写入文件中 with open ('t1.txt',mode='r',encoding= 'utf-8') as f:
print(json.load(f)) # 反序列化
# load 可以将文件中的字符串返回来

  json 模块的限制

    1、json 操作字典的时候,key 必须是字符串形式。

    2、json 格式的字典,的key 不能是数字,如果是数字,会被强行转成str。且进行反序列化后,还是字符串。

         

    3、json格式中的字符串必须是双引号的形式,如果将json 格式的字符串的双引号换成单引号,就会报错。

    4、json 对元祖进行序列化是会被强行转换成列表,反序列化后还是列表,而不会返回元祖。

    5、json 支持元祖做字典的value值,不支持做key 。

    6、json.dump支持多次dump写入文件,但不支持load。(因为写入后会出现,多种类型出现在一行)。

      

      要想dump多个数据进入文件,需要用dumps

      

    7、对于中文,如果不处理,序列化后会变成ascii码类型。

      因此,ensure_ascii = False 时,就可以是中文类型了。

    8、set 不能被dumps/dump

二、pickel  是python特有的模块,不能跨语言,但是支持的数据类型多样。

    1、dumps,  loads (pickel.dumps 的结果是bytesle类型)

      

    2、dump  load

     如果对文件进行操作,dump时,需要时 wb 模式写入,而进行 load时,需要 rb 模式读出。

    3、可以进行多次dump/load 操作。

三、shelve

    1、当你写定一个文件后,对文件的改动较小,读取文件的次数较多的时候,可以使用shelve。

序列化模块 json pickel shelve的更多相关文章

  1. python 全栈开发,Day25(复习,序列化模块json,pickle,shelve,hashlib模块)

    一.复习 反射 必须会 必须能看懂 必须知道在哪儿用 hasattr getattr setattr delattr内置方法 必须能看懂 能用尽量用__len__ len(obj)的结果依赖于obj. ...

  2. python开发模块基础:序列化模块json,pickle,shelve

    一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文 ...

  3. python序列化模块 json&&pickle&&shelve

    #序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...

  4. python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)

    1.昨日内容回顾 1.正则表达式     # 正则表达式 —— str           # 检测字符串是否符合要求     # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...

  5. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  6. python序列化: json & pickle & shelve 模块

    一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...

  7. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  8. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

  9. 20,序列化模块 json,pickle,shelve

    序列化模块 什么叫序列化? 将原本的字典,列表等内容转换成一个字符串的过程叫做序列化. 序列化的目的? 数据结构 通过序列化 转成 str. str 通过反序列化 转化成数据结构. json: jso ...

随机推荐

  1. android项目引入第三方库工程出现的问题及解决方案

    一.导入libar库工程 1.使用第三方库工程libary,基本上都是从github上下载,解压后里面有个libary文件夹 2.将libary导入到eclipse中,步骤如下 1)在eclipse包 ...

  2. 02-offsetLeft和offsetTop

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. MHA脚本master_ip_failover.pl(三)

    #!/usr/bin/env perl use strict;use warnings FATAL => 'all'; use Getopt::Long; my ( $command, $ssh ...

  4. HDU 1423 Greatest Common Increasing Subsequence ——动态规划

    好久以前的坑了. 最长公共上升子序列. 没什么好说的,自己太菜了 #include <map> #include <cmath> #include <queue> ...

  5. POJ2096 Collecting Bugs(概率DP,求期望)

    Collecting Bugs Ivan is fond of collecting. Unlike other people who collect post stamps, coins or ot ...

  6. *AtCoder Regular Contest 096F - Sweet Alchemy

    $n \leq 50$的树,每个点有权值,现要选点(可多次选一个点)使点数尽量多,如下限制:选的总权值不超过$C \leq 1e9$:$c_i$表示$i$选的次数,$p_i$表示$i$的父亲,那么$c ...

  7. SQL 随机取出一条数据

    今天遇到一需求,需要随机取出一条数据.网上找了下,sqlserver自带的有newID()这个函数,可以随机出来一个guid,用来取随机数还是蛮不错的. 直接上SQL: select top 1 *, ...

  8. Laravel 控制器的session

    设置路由 //使用session,需要开启session,//session的开始类在/app/Kernel下//protected $middlewareGroups = [// 'web' =&g ...

  9. raspi扩展板

    1.Ciseco Slice 2.Adafruit(Plate) 3.Fen的Gertboard:(详见F盘下的使用手册) 12个缓冲输入输出端口 LED状态指示灯 3个按钮开关 6个开路集成电极 1 ...

  10. raspberry pi系统安装

    1.格式化SD卡,用SDFormatter 2.解压下载的操作系统 3.复制操作系统到SD卡(要放在根目录,把最外面的文件夹路径去掉) 4.把SD卡插入raspberry pi,接上电源 5.在启动界 ...