一,序列化
主要分为通过函数进行序列化与反序列化达到传输数据的效果。根据情况可分为两种。
第一种,python与不同语言间进行交流,比如,后端语言,java c c++ c#等,因为需要使用都可以识别的数据类型进行传输,所有便诞生了Json模块。Json模块主要分为四个功能,dumps、dump、loads、load。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #该方法是通过控制内存地址进行序列化与反序列化的。 2 import json 3 dic = {'k1':'v1','k2':'v2','k3':'v3'} 4 str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 5 print(type(str_dic),str_dic) #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"} 6 #注意,json转换完的字符串类型的字典中的字符串是由""表示的 7 8 dic2 = json.loads(str_dic) #反序列化:将一个字符串格式的字典转换成一个字典 9 #注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示 10 print(type(dic2),dic2) #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} 11 12 13 list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}] 14 str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型 15 print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}] 16 list_dic2 = json.loads(str_dic) 17 print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}] 18 loads和dumps
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #该方法是通过控制内存地址进行序列化与反序列化的。 2 import json 3 dic = {'k1':'v1','k2':'v2','k3':'v3'} 4 str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 5 print(type(str_dic),str_dic) #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"} 6 #注意,json转换完的字符串类型的字典中的字符串是由""表示的 7 8 dic2 = json.loads(str_dic) #反序列化:将一个字符串格式的字典转换成一个字典 9 #注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示 10 print(type(dic2),dic2) #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} 11 12 13 list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}] 14 str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型 15 print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}] 16 list_dic2 = json.loads(str_dic) 17 print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}] 18 loads和dumps