python --- json模块和pickle模块详解
json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化)。(适用于多种编程语言,可以与其他编程语言做数据交换)
pickle:用于对Python对象结构进行序列化和反序列化。(只适用于python)
对于人类而言,json是人类可读的,而pickle不是。
json常用方法(支持列表,字典,元组等基本数据类型):
dumps() --- 将传入的对象序列化。
调用:json.dumps(object)
例如(将列表,字典等不能直接写入文件的数据序列化成字符串):
>>> json.dumps([1,2,3,4])
'[1, 2, 3, 4]'
>>> json.dumps({'a':1, 'b':2, 'c':3, 'd':4})
'{"a": 1, "c": 3, "b": 2, "d": 4}'
dump() --- 将传入的对象序列化并写入文件。
调用:json.dump(object, fp)
例如:
import json list_1 = [1, 2, 3, 4]
dict_1 = {"a": 1, "c": 3, "b": 2, "d": 4} filename = "test.json" '''
with open(filename, 'w') as fp:
fp.write(json.dumps(list_1))
fp.write(json.dumps(dict_1))
''' #等同与上面注释中的代码
with open(filename, 'w') as fp:
json.dump(list_1, fp)
json.dump(dict_1, fp)
test.json文件中的数据:
{"c": 3, "d": 4, "b": 2, "a": 1}
load() --- 加载一杯存储在文件中的json数据。
调用:json.load(fp)
例如(是json.loads()的封装,可以发现数据加载回来后,数据类型没有发生变化):
import json filename = "test.json"
with open(filename, 'r') as fp:
dict_1 = json.load(fp)
print(type(dict_1))
print(dict_1) >>> <class 'dict'>
>>> {'b': 2, 'a': 1, 'd': 4, 'c': 3}
loads() --- 加载python数据。
调用:json.loads(s) (s指从文件中读出来的数据)
例如(相当于先读取再加载):
import json filename = "test.json"
with open(filename, 'r') as fp:
s = fp.read(fp)
dict_1 = json.loads(s)
print(type(dict_1))
print(dict_1)
pickle常用方法(使用等同于json中方法的使用,不过pickle支持更为复杂的数据类型,如果你的数据只用于python程序,推荐使用pickle):
dumps() ---
dump() ---
load() ---
loads() ---
python --- json模块和pickle模块详解的更多相关文章
- Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块)
Python 入门之 内置模块 -- 序列化模块(json模块.pickle模块) 1.序列化 Python中这种序列化模块有三种: json模块 : 不同语言都遵循的一种数据转化格式,即不同 ...
- 【python标准库模块四】Json模块和Pickle模块学习
Json模块 原来有个eval函数能能够从字符串中提取出对应的数据类型,比如"{"name":"zhangsan"}",可以提取出一个字典. ...
- python中序列化json模块和pickle模块
内置模块和第三方模块 json模块和pickle 模块(序列化模块) 什么是序列化? 序列化就是将内粗这种的数据类型转成另一种格式 序列化:字典类型——>序列化——>其他格式——>存 ...
- Python之路(第十五篇)sys模块、json模块、pickle模块、shelve模块
一.sys模块 1.sys.argv 命令行参数List,第一个元素是程序本身路径 2.sys.exit(n) 退出程序,正常退出时exit(0) 3.sys.version . sys.maxint ...
- Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块
5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 ...
- python学习第四十八天json模块与pickle模块差异
在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点 跨语言,体积小 缺点 只能支持 int st ...
- json模块和pickle模块
json模块和pickle模块 一.json模块 作用:用python写了一个程序,用java写了一门程序,这两个程序需要数据之间交流,就产生了一种多种语言通用的数据类型,json串. 序列化:把对象 ...
- Json模块和Pickle模块的使用
在对数据进行序列化和反序列化是常见的数据操作,Python提供了两个模块方便开发者实现数据的序列化操作,即 json 模块和 pickle 模块.这两个模块主要区别如下: json 是一个文本序列化格 ...
- os模块、sys模块、json模块、pickle模块、logging模块
目录 os模块 sys模块 json模块 pickle模块 logging模块 os模块 功能:与操作系统交互,可以操作文件 一.对文件操作 判断是否为文件 os.path.isfile(r'路径') ...
- python 3.x 爬虫基础---Urllib详解
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...
随机推荐
- Spring MVC入门讲解
一.Springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 将web层进行职责解耦,基 ...
- tkinter第一章
tk1 ------------------------------------------------------------------------------------------ impor ...
- 跨浏览器tab页的通信解决方案尝试
目标 当前页面需要与当前浏览器已打开的的某个tab页通信,完成某些交互.其中,与当前页面待通信的tab页可以是与当前页面同域(相同的协议.域名和端口),也可以是跨域的. 要实现这个特殊的功能,单单使用 ...
- 个人作业-2 英语学习APP分析
产品: 必应词典 PC版 第一部分:调研,评测 1.对于这款产品的第一感觉是界面做的有点生硬粗糙,而且界面有种很空的感觉,界面美化做的不是很好,第一印象不是很喜欢.不过一点,就是把单词的近义词反义词放 ...
- 团队作业4——第一次项目冲刺(Alpha版本)4.26
一.当天站立式会议照片 本次会议主要内容:汇报工作进度,根据完成情况调整进度,分配各自接口编写任务. 二.每个人的工作 三.燃尽图 横坐标:工作日,以天为单位,一共七天,代表着Alpha冲刺阶段的时间 ...
- 201521123026《Java程序设计》第8周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 Q1.1.List中指定元素的删除(题目4-1) 1.1 实验总结 答: 1.通过equals ...
- 201521123070 《JAVA程序设计》第6周学习总结
1. 本章学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- Sublime使用Ctrl+`作为快捷键弹出Console没有反映的解决办法
很多Sublime新人都遇到了这个问题,到网上搜,信息很片面,而且不少都是旧版本的.于是有了这篇文章. 默认Sublime使用Ctrl+`作为快捷键弹出Console,但不同的系统抑或安装 ...
- 201521123020《java程序设计》 第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...
- Spring第六篇【Spring AOP模块】
前言 Spring的第五篇也算是AOP编程的开山篇了,主要讲解了代理模式-..本博文主要讲解Spring的AOP模块:注解方式和XML方式实现AOP编程.切入点表达式.. AOP的概述 Aop: as ...