根据序列化和反序列的特性
- loads: 是将
string
转换为dict
- dumps: 是将
dict
转换为string
- load: 是将里
json
格式字符串转化为dict
,读取文件 - dump: 是将
dict
类型转换为json
格式字符串,存入文件
一、相同点
dump
和dumps
都实现了序列化load
和loads
都实现反序列化
变量从内存中变成可存储或传输的过程称之为序列化,序列化是将对象状态转化为可保存或可传输格式的过程。
变量内容从序列化的对象重新读到内存里称之为反序列化,反序列化是流转换为对象。
二、区别
1.load 和 loads (反序列化)
**load:**针对文件句柄,将json
格式的字符转换为dict
,从文件中读取 (将string
转换为dict
)
a_json = json.load(open('demo.json','r'))
**loads:**针对内存对象,将string
转换为dict
(将string转换为dict)
a = json.loads('{'a':'1111','b':'2222'}')
2.dump 和 dumps(序列化)
**dump:**将dict类型转换为json
字符串格式,写入到文件 (易存储)
a_dict = {'a':'1111','b':'2222'}
json.dump(a_dict, open('demo.json', 'w')
**dumps:**将dict转换为string
(易传输)
a_dict = {'a':'1111','b':'2222'}
a_str = json.dumps(a_dict)