json & pickle

什么是序列化

  • 序列化是指把内存里的数据类型转变成字符串,以便使其能存储在硬盘和网络传输。因为只能接收bytes类型。

为什么要序列化

  • 持久化存储

分类

- json:用于字符串和python数据类型之间进行转换
- pickle:python特有的特性

方法

  • dumps、dump、loads、load

使用

import json

# 最好是双引号
dic = {"name": '江子牙', 'age': 21, "性别": "男"}
print('序列化之前:', type(dic), dic)
j1 = json.dumps(dic, ensure_ascii=False)
print('序列化之后:', type(j1), j1)
dic1 = json.loads(j1)
print('反序列化:', type(dic1), dic1) # json文件相关操作 f1 = open('1.json', 'w+', encoding='utf-8') # 文件写入
json.dump(j1, f1, ensure_ascii=False)
f1.seek(0)
data = f1.read()
print('dump写入后的数据', data)
f1.close() # 文件读取
f2 = open('1.json', 'r', encoding='utf-8') res = json.load(f2)
print('load读取写入的数据', res)

json是什么

  • json是一种轻量级的数据交换格式,简洁清晰的层次结构使人易于阅读,提高网络传输效率(以bytes传输)

pickle VS json

- json
- 优点:跨语言,体积小,
- 缺点:支持的数据类型少,List str int tuple dict
- pickle
- 优点:专为python设计,支持python所有的数据类型,包括函数
- 缺点:只能在python中使用,存数数据占用空间大

最新文章

  1. AFNetworking 基本使用
  2. 腾讯云环境配置之PHP5.6.3 + redis扩展 稳定版
  3. SQL 性能调优日常积累【转】
  4. Java JDK 动态代理使用及实现原理分析
  5. MAC JAVA 环境变量那些事
  6. 4070: [Apio2015]雅加达的摩天楼
  7. html表格cell合并插件
  8. CSS实现三列布局
  9. Oracle 网络监听配置管理
  10. IndexedDB 教程
  11. Flask-论坛开发-1-基础知识
  12. AISing Programming Contest 2019 翻车记
  13. IE8以下浏览器设置Title的问题
  14. namenode namespaceID与datanode namespaceID 不一致导致datanode无法启动的问题
  15. U3D学习003——编辑器使用
  16. 小众Python库介绍
  17. XSSExcelUtil
  18. React-Native 之 ScrollView介绍和使用
  19. 51nod 1070 Bash游戏 V4
  20. Static和static block(静态块)的用法

热门文章

  1. 基于k8s的ES集群定期删除索引
  2. Oracle分区表分批迁移
  3. SQA1
  4. wireshark抓取本地回环数据包
  5. 每日linux命令之kill
  6. c++11之为什么C++11引入了std::ref?
  7. VOJ1049 送给圣诞夜的礼品 【矩阵经典4】
  8. js 原生获取Class元素
  9. json 二进制传输方案
  10. HDU1285_确定比赛名次