序列化模块1 json

 

......得到一个 字符串 的结果 过程就叫序列化

字典 / 列表 / 数字 /对象 -序列化->字符串


为什么要序列化
# 1.要把内容写入文件 序列化
# 2.网络传输数据 序列化


字符串-反序列化->字典 / 列表 / 数字 /对象

 

序列化模块 json pickle shelve

 

import json


# json格式的限制1,json格式的key必须是字符串数据类型
# json格式中的字符串只能是""
# 写入中文需要加参数 ensu_ascii = False

# 如果是数字为key,那么dumps之后会强行转成字符串""数据类型,loads回来会变成字符串key

# 对元组做value的字典会把元组强制转换成列表

#  json不支持元组做key, key只能是字符串类型

# 可以多次dump但是不能load出来

# 想dump多个数据进入文件,用dumps  先把每个类型都转序列化 再用 write 写入

# json的其他参数,是为了用户看的更方便,但是会相对浪费存储空间

 

 


# 只提供四个方法 dumps loads dump load

 

# 字符串转换 (dumps loads)

dic = {'aaa':'bbb','ccc':'ddd'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 print(dic) print(str_dic,type(str_dic)) # {"aaa": "bbb", "ccc": "ddd"} <class 'str'> #注意,json转换完的字符串类型的字典中的字符串是由""表示的 with open('json_dump','w') as f: f.write(str_dic) ret = json.loads(str_dic) #反序列化:将一个字符串格式的字典转换成一个字典 #注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示 print(ret,type(ret)) print(ret['aaa'])

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdxsg.html