day06----json模块,pickle模块,高级特性

json模块详解

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。

这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
python类型数据和JSON数据格式互相转换规则
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
数据类型编解码
dump:  将对象序列化并保存到文件

load:   将序列化字符串从文件读取并反序列化
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
load
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性

pickle模块详解

python的pickle模块实现了python的所有数据序列和反序列化。与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。
cPickle是pickle模块的C语言编译版本相对速度更快。
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性

loads
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性

高级特性

  1. 生成式与生成器
  2. 迭代器
  3. 闭包
  4. 装饰器

列表生成式

day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
课上小练习
1.求1-50所有数的平方
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
2.生成一个2n+1的数字列表,n是从3到11的数字
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
3.求以r为半径的圆的周长和面积
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
3.判断质数
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
字典生成式
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
生成器Generator
什么叫生成器?
在Python中,一边循环一边计算的机制,称为生成器:Generator。
什么时候需要使用生成器?
一般情况下我们不需要使用生成器,只有当我们因为性能限制才需要用到,比如我们使用python读取一
个10g的文件,如果一次性将10g的文件加载到内存处理的话(read方法),内存肯定会溢出;这里如果可以
使用生成器把读写交叉处理进行,比如使用(readline和readlines)就可以再循环读取的同时不断处理,这样就可以节省大量的内存空间.
如何创建生成器?
第一种方法: 列表生成式的改写。 []改成()
第一种方法: yield关键字。
如何打印生成器的每一个元素呢?
通过for循环, 依次计算并生成每一个元素。
如果要一个一个打印出来,可以通过next()函数获得生成器的下一个返回值。
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
第二种方法: yield关键字(例子:fib数列_非递归方式实现)
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
10_yield关键字工作机制
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
11_生成器的send方法
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性
day06----json模块,pickle模块,高级特性