用于序列化的两个模块

  • Json,用于字符串 和 python数据类型间进行转换
  • Pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

Pickle模块提供了四个功能:dumps、dump、loads、load

Json

将数据通过特殊的形式转换为所有程序语言都认识的字符串

Python 原始类型向 Json 类型转换表

Python Json
dict object
list, tuple array
str, unicose string
int, long, float number
Ture ture
False false
None null

Json dump & dumps:

import json
info = {
'name': 'dbf-',
'age': 18
}
with open('test', 'w')as f:
print(json.dumps(info), ' is the result')
f.write(json.dumps(info)) # 写入Json文件 json.dump(info, f)=f.write(json.dumps(info))
# dumps序列化一次load反序列化一次

输出结果:

{"age": 18, "name": "dbf-"}  is the result

Json load & loads:

import json

with open('test', 'r')as f:         # 打开json文件
data = json.loads(f.read()) # 读入内存地址 json.load(f) = json.loads(f.read()) print(data['age'])

输出结果:

18

Pickle

将数据通过特殊的形式转换为只有Python语言认识的字符串

Pickle dump & dumps

import pickle
info = {
'name': 'dbf-',
'age': 18
}
with open('test', 'wb')as f: # 以二进制模式打开文件
print(pickle.dumps(info), ' is the result')
pickle.dump(info, f) # f.write(pickle.dumps(info))

输出结果:

b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x04\x00\x00\x00dbf-q\x02X\x03\x00\x00\x00ageq\x03K\x12u.'  is the result

Pickle load & loads

import pickle

with open('test', 'rb')as f:    # 以二进制模式打开文件
data = pickle.load(f) # data = pickle.loads(f.read())
print(data['age'])

输出结果:

18

注意:Pickle 读写文件都要以二进制模式打开

 

 

Python Json & Pickle模块的更多相关文章

  1. Python json pickle 模块 区别

    json 支持 str.list.dict.int.tuple 数据类型 pickle 支持Python所有里的所有数据类型 缺点: 只能在Python使用 总结: 1.JSON只能处理基本数据类型. ...

  2. python之os与json&pickle模块

     一.os模块 简单概述一下os模块就是与操作系统交互的一个接口 import os #os.getcwd() print(os.getcwd()) # 获取到当前工作目录 # 运行结果:E:\pyt ...

  3. Pythoy 数据类型序列化——json&pickle 模块

    Pythoy 数据类型序列化--json&pickle 模块 TOC 什么是序列化/反序列化 pickle 模块 json 模块 对比json和pickle json.tool 命令行接口 什 ...

  4. 20181205(模块循环导入解决方案,json&pickle模块,time,date,random介绍)

    一.补充内容 循环导入 解决方案: 1.将导入的语句挪到后面. ​ 2.将导入语句放入函数,函数在定义阶段不运行 #m1.pyprint('正在导入m1')   #②能够正常打印from m2 imp ...

  5. [re模块、json&pickle模块]

    [re模块.json&pickle模块] re模块 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则 ...

  6. Python(正则 Time datatime os sys random json pickle模块)

    正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...

  7. 12 python json&pickle&shelve模块

      1.什么叫序列化 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes(字节) 2.用于序列化的两个模块,json和pickle ...

  8. Python json & pickle & shelve模块

    json & pickle 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇 ...

  9. 【python】pickle模块

    持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...

随机推荐

  1. Vue:(五)axios

    Axios是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中.axios主要是用于向后台发起请求的,还有在请求中做更多可控功能.官方不再维护vue-resource,推 ...

  2. 启动xampp出错,Port 80 in use by "Unable to open process" with PID 4!

    启动xampp出错,Port 80 in use by "Unable to open process" with PID 4! 环境:windows10 80端口被PID为4的应 ...

  3. 2018 German Collegiate Programming Contest (GCPC 18)

    2018 German Collegiate Programming Contest (GCPC 18) Attack on Alpha-Zet 建树,求lca 代码: #include <al ...

  4. MDK C++编程说明

    1.汇编启动文件的[WEAK]声明仅对C文件符号有效,所以我们编写外设中断服务方法时应该写在C文件中,或者在CPP文件中使用exetrn "C" { }修饰符. 2.C编译器不能直 ...

  5. hibernate 的API使用

    1.Query对象:不需要写sql语句,但需要hql语句,和sql很类似 (1)sql和hql区别:sql操作表和表字段,hql操作实体和实体属性 (2)使用: 2.Criteria对象:不需要写语句 ...

  6. 从多个角度来理解协方差(covariance)

    起源:协方差自然是由方差衍生而来的,方差反应的是一个变量(一维)的离散程度,到二维了,我们可以对每个维度求其离散程度,但我们还想知道更多.我们想知道两个维度(变量)之间的关系,直观的举例就是身高和体重 ...

  7. redis 版的 hello world

    为 redis 添加一个命令,效果如下图: 在 Server.h 中加入命令处理函数的声明: void meCommand(client *c); 在 Server.c 的命令表中加入: struct ...

  8. Python查看与安装

    官网下载最新的版本  https://www.python.org mac系统,最近版本的os系统默认自带python 2.7,可以通过在终端输入python或python -V zhanyunjiu ...

  9. elastic search 常用查询

    1.查询mapping curl -X GET "10.0.38.111:1200/metric_data_bus_2018-08-07/_mapping/data_bus?pretty&q ...

  10. 在windows下安装nvm并管理nodejs版本

    不得不说,nodejs的nvm工具跟python下的mkvirtualenv 工具很像.作为立志成为伪全栈的我来说,玩玩nodejs是必不可少的.nodejs 有很多种的安装方式,下面我用nvm的方式 ...