序列化:转向一个字符串数据类型

序列     ————  字符串

序列化和反序列化的概念:

ios jsonmodel运用 json模块中常用的四种方法_字符串

序列化三种方法:json  pickle  shelve

ios jsonmodel运用 json模块中常用的四种方法_字符串_02

json模块:json模块提供了四个方法dumps和loads、dump和load

json  dumps序列化方法(将其他数据类型转化成字符串类型)  loads反序列化方法

dumps和loads直接操作内存中的数据类型

ios jsonmodel运用 json模块中常用的四种方法_Python_03

json  loads反序列化方法(将字符串类型转回原来的类型)

ios jsonmodel运用 json模块中常用的四种方法_ios jsonmodel运用_04

json可以进行序列化的数据类型有:数字、字符串、列表、字典、元组

ios jsonmodel运用 json模块中常用的四种方法_字符串_05

json  dump序列化方法(对文件进行操作)  load反序列化方法(对文件进行操作)

dump和load是往文件里面写和从文件中读,是一次性读完或一次性写完,如果文件中有多个字典就会报错

ios jsonmodel运用 json模块中常用的四种方法_Python_06

ios jsonmodel运用 json模块中常用的四种方法_序列化_07

json  load反序列化方法(对文件进行操作)

ios jsonmodel运用 json模块中常用的四种方法_序列化_08

解决中文dump序列化时往文件中写的是bytes类型的问题:

ios jsonmodel运用 json模块中常用的四种方法_ios jsonmodel运用_09

输出:

ios jsonmodel运用 json模块中常用的四种方法_字符串_10

解决方法:

ios jsonmodel运用 json模块中常用的四种方法_json_11

ios jsonmodel运用 json模块中常用的四种方法_字符串_12

文件中多个字典的数据的读和写:

写:

ios jsonmodel运用 json模块中常用的四种方法_ios jsonmodel运用_13

读:

ios jsonmodel运用 json模块中常用的四种方法_ios jsonmodel运用_14

pickle模块:(只有Python可以使用)和json模块一样提供了四个方法dumps和loads、dump和load

picke的dumps和loads方法

ios jsonmodel运用 json模块中常用的四种方法_Python_15

picke的dump和load方法

ios jsonmodel运用 json模块中常用的四种方法_ios jsonmodel运用_16

对于pickle可以分步地dump和load,而对于json就不行了,json不直接支持

ios jsonmodel运用 json模块中常用的四种方法_序列化_17

shelve模块:写时直接对文件句柄进行操作,取出数据时也只需要直接用key获取即可(自己从文件中也看不出来写了什么)    (和json、pickle都不一样)

ios jsonmodel运用 json模块中常用的四种方法_json_18

 

总结:只有json在文件中的数据对我们来说是透明的,pickle和shelve在文件中的数据对我们来说是看不懂的

wirteback:

ios jsonmodel运用 json模块中常用的四种方法_json_19

ios jsonmodel运用 json模块中常用的四种方法_字符串_20