python中json库序列化和反序列化(列表、字典、元组)
1、json库的应用
在python中,序列化:把python的数据类型(字典、元组、列表)转为str的数据类型;
反序列化:把str的数据类型转为python对象的过程。
序列化和反序列化在列表、元组和字典中的应用:
列表:
import json lists=[1,2,3,4] #序列化 list_str=json.dumps(lists) ##先对lists进行序列化list_str print('内容:',list_str,'序列化后的列表类型:',type(list_str)) #反序列化 str_list=json.loads(list_str) ##再对list_str进行反序列化str_list print('内容:',str_list,'反序列化后的列表类型:',type(str_list))
输出结果(输出的内容可能看不出来效果,通过type()查看数据类型就可以看出区别):
元组:
import json
tuple1=(1,2,3,4) #序列化 tuple_str=json.dumps(tuple1) #格式化的时候 print('内容:',tuple_str,'序列化后的列表类型:',type(tuple_str)) # #反序列化 str_tuple=json.loads(tuple_str) print('内容:',str_tuple,'序列化后的列表类型:',type(str_tuple))
输出结果(输出的内容可能看不出来效果,通过type()查看数据类型就可以看出区别):
字典:
import json dict1={'name':'lyl','age':18} # #序列化 dict_str=json.dumps(dict1) print('内容:',dict_str,'序列化后的列表类型:',type(dict_str)) # #反序列化 str_dict=json.loads(dict_str) print('内容:',str_dict,'序列化后的列表类型:',type(str_dict))
输出结果(双引号和单引号并不能说明数据类型的转变,通过type()查看数据类型):
dump():把目标数据写到文件里面
load():从文件里面读取数据
import json
dict1={'name':'lyl','age':18,'address':'xian'}
#把dict1的内容用w模式写到log.md里面, json.dump(dict1,open('log.md','w')) #读取log.md里面的内容 print(json.load(open('log.md','r')))
输出结果: