用于序列化的两个模块
- 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模块的更多相关文章
-
Python json pickle 模块 区别
json 支持 str.list.dict.int.tuple 数据类型 pickle 支持Python所有里的所有数据类型 缺点: 只能在Python使用 总结: 1.JSON只能处理基本数据类型. ...
-
python之os与json&;pickle模块
一.os模块 简单概述一下os模块就是与操作系统交互的一个接口 import os #os.getcwd() print(os.getcwd()) # 获取到当前工作目录 # 运行结果:E:\pyt ...
-
Pythoy 数据类型序列化——json&;pickle 模块
Pythoy 数据类型序列化--json&pickle 模块 TOC 什么是序列化/反序列化 pickle 模块 json 模块 对比json和pickle json.tool 命令行接口 什 ...
-
20181205(模块循环导入解决方案,json&;pickle模块,time,date,random介绍)
一.补充内容 循环导入 解决方案: 1.将导入的语句挪到后面. 2.将导入语句放入函数,函数在定义阶段不运行 #m1.pyprint('正在导入m1') #②能够正常打印from m2 imp ...
-
[re模块、json&;pickle模块]
[re模块.json&pickle模块] re模块 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则 ...
-
Python(正则 Time datatime os sys random json pickle模块)
正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...
-
12 python json&;pickle&;shelve模块
1.什么叫序列化 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes(字节) 2.用于序列化的两个模块,json和pickle ...
-
Python json &; pickle &; shelve模块
json & pickle 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇 ...
-
【python】pickle模块
持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...
随机推荐
-
下载最新版本的Oracle Database
直接访问Oracle的官网就可以找到,鉴于Oracle经常改到下载面也我这里直接粘贴下载地址 http://www.oracle.com/technetwork/database/enterprise ...
-
HTML5基本特性和新功能
HTML5的基本特征 1.向前兼容性 核心理念——平滑过渡! 不支持html5的浏览器可以向前兼容,并不会影响web内容的显示! 2.跨平台运行性 从pc浏览器到手机.平板电脑,甚至是智能电视. 只要 ...
-
C#操作xml
最进在做一个项目,需要用到xml做配置文件,但是自己忘的差不多了,所以就温习了一遍.以下是我项目中所用到的,所以肯定也不全面. 1.新建xml文件 using System.Xml;//需要引用 st ...
-
跟着Android学设计模式:代理(proxy)
代理模式 1.意图:为其它对象提供一种代理以控制对这个对象的訪问. 2.适用性: 远程代理:虚代理.保护代理:智能引用: Android源代码中用到了大量的代理设计模式.比方Context的设计,Bi ...
-
openstack windows 2008 img
1,制作镜像主机pre Env yum -y install qemu-img virt-install libvirt 2,配置bridge
-
强化学习中的无模型 基于值函数的 Q-Learning 和 Sarsa 学习
强化学习基础: 注: 在强化学习中 奖励函数和状态转移函数都是未知的,之所以有已知模型的强化学习解法是指使用采样估计的方式估计出奖励函数和状态转移函数,然后将强化学习问题转换为可以使用动态规划求解的 ...
-
js 判断字符串中是否包含某个字符串(转载)
from : https://www.cnblogs.com/ooo0/p/7741651.html String对象的方法 方法一: indexOf() (推荐) var str = " ...
-
Vue---父子组件之间的通信
在vue组件通信中其中最常见通信方式就是父子组件之中的通信,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使用,遇到业务逻辑操作时子组 ...
-
017-通过govendor管理依赖包
1:安装 go get -u github.com/kardianos/govendor 2:配置环境变量 需要把 $GOPATH/bin/ 加到 PATH 中 D:\my_workspace\go_ ...
-
javac后期需要重点阅读的类
(1)Annotate (300行) Enter annotations on symbols. Annotations accumulate in a queue,which is processe ...