Json、Pickle
Json
JSON是一个序列化模块,一种用于存储和交换数据的语法。
JSON是用JavaScript对象表示法(JavaScript object notation)格式编写的文本。
可以将python数据类型 --—> json数据类型 --—>字符串 --—> 文件中
其他语言要想用python的数据
文件中 -–—> 字符串 -–—> json 数据格式 -–—> 其他语言的数据类型
在json中,所有的字符串都是双引号
元组比较特殊,若转成json数据,内部会将元组变成列表
set是不能换号json数据
json.dumps 序列化(编码),将对象编码成json对象
import json import json d = { 'name':'zcy', 'age':18, } a = json.dumps(d) print(a) {"name": "zcy", "age": 18}json.loads 反序列化(解码),该函数返回python字典的数据类型
b = json.loads(a) print(b) {'name': 'zcy', 'age': 18}
json.dump不需要使用write()方法, 只需要写哪个字典、哪个文件即可;而.dumps()需要使用.write()方法写入
保存json数据时,用.json作文文件的后缀名
with open('user.json','w',encoding='utf-8') as f: json.dump(数据,句柄f)json.load传的是文件对象,而loads传的是字符串; 使用loads时需要先读文件在使用,load则不用先读
with open('user.json','r',encoding='utf-8') data = json.load(f) print(data)
当将Python对象转换为JSON时,Python对象将被转换为对应JSON (JavaScript)类型:
| Python | JSON |
|---|---|
| dict | Object |
| list | Array |
| tuple | Array |
| str | String |
| int | Number |
| float | Number |
| True | true |
| False | false |
| None | null |
pickle
pickle是一个python自带的序列化模块
优点:可以支持python中所有的数据类型
可以直接存'bytes'类型 的数据,pickle存取速度更快
缺点:只能支持python使用,不能跨平台
默认情况下,pickle数据格式使用相对紧凑的二进制表示。如果您需要最佳尺寸特征,则可以有效地压缩数据。
要序列化对象层次结构,只需调用该dumps()函数即可。同样,要对数据流进行反序列化,请调用该loads()函数
Json、Pickle的更多相关文章
- day17--模块之time、calendar、datetime、sys、os、os.path、json、pickle、random
一.时间模块(time,calendar,datetime) 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00 ...
- 【转】Python之数据序列化(json、pickle、shelve)
[转]Python之数据序列化(json.pickle.shelve) 本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型 ...
- python常用模块之json、pickle模块
python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...
- json、pickle\shelve模块(超级好用~!)讲解
json.pickle模块讲解 见我前面的文章:http://www.cnblogs.com/itfat/p/7456054.html shelve模块讲解(超级好用~!) json和pickle的模 ...
- python基础-json、pickle模块
json.pickle区别 总结: """ json: 1.不是所有的数据类型否可以序列化,序列化返回结果为字符串 2.不能多次对同一文件序列化 3.json数据可以跨语 ...
- (十四)json、pickle与shelve模块
任何语言,都有自己的数据类型,那么不同的语言怎么找到一个通用的标准? 比如,后端用Python写的,前端是js,那么后端如果传一个dic字典给前端,前端肯定不认. 所以就有了序列化这个概念. 什么是序 ...
- Python常用模块 (2) (loging、configparser、json、pickle、subprocess)
logging 简单应用 将日志打印到屏幕 import logging logging.debug('debug message') logging.info('info message') log ...
- Python之数据序列化(json、pickle、shelve)
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...
- python 数据序列化(json、pickle、shelve)
本来要查一下json系列化自定义对象的一个问题,然后发现这篇博客(https://www.cnblogs.com/yyds/p/6563608.html)很全面,感谢作者,关于python序列化的知识 ...
- day29-序列化 json、pickle、shelve
1.pickle和JSON序列化 如果我们想用文本文件保存一个 Python 对象怎么操作?这里就涉及到序列化的问题,序列化指的是将原本的字典.列表等内容转换成一个字符串的过程. 2.为什么要使用序列 ...
随机推荐
- debian系统配置
使用腾讯docker源 sudo sed -i 's/deb.debian.org/mirrors.cloud.tencent.com/g' /etc/apt/sources.list sudo se ...
- redis对象存储(适用于订单系统自动更新)
启动:redis-server.exe redis.windows.conf连接:redis-cli.exe -h 127.0.0.1 -p 6379 #插入取消的订单列表与时间: redis 127 ...
- Java8 新特性 Steam() 中间有状态操作
中间有状态操作 Java8 新特性 Stream 练习实例 中间操作,就是把数据处理成自己想要的类型,并且有状态操作,是在所有的数据基础上进行操作的.比如dictinct(去重),sorted(排 ...
- C#中$拼字符串
除了Format,StringBuilder,+方式拼字符串外,有一种比较直观的拼字符串方式,代码如下 static void Main(string[] args) { string name = ...
- HUT 排序训练赛 F - 水果
Problem's Link Mean: 略. analyse: 使用结构体排序. 首先,定义一个结构体,用来存放输入的数据,然后就是输入,注意:这儿有一个小细节,输入数字,然后紧跟着输入字符串,这时 ...
- 详解XOR(异或)运算加密
逻辑运算之中,除了 AND 和 OR,还有一种 XOR 运算,中文称为"异或运算".它的定义是:两个值相同时,返回false,否则返回true.也就是说,XOR可以用来判断两个值是 ...
- SpringBoot整合PageHelper做多条件分页查询
https://yq.aliyun.com/articles/619586 本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的属性的中文解释 ...
- EF连接mysql,出现A call to SSPI failed错误,解决办法
我的使用场景是用EF连接AWS的mysql RDS,会偶发性的出现A call to SSPI failed错误, System.AggregateException: One or more err ...
- android 入门开发
本示例讲解的是基本点有 1.使用SQLite数据库 2.对数据的新增,查询. 3.利用ViewActivity进行数据的呈现 代码是参考了网上各种代码,刚开始写,肯定有一些地方是有问题,我对JAVA代 ...
- 简单理解ORM,实体类生成查询SQL语句
目前有很多开源的ORM项目,大多情况下也不需要我们重复去造轮子,我们只需要了解轮子怎么造的,怎么用就可以,下面简单说一下怎么通过实体生成一个SQL语句: 先建立2个Attribute类,TableAt ...