json和pickle模块,两个都是用于序列化的模块
• json模块,用于字符串与python数据类型之间的转换
• pickle模块,用于python特有类型与python数据类型之间的转换
两个模块,都提供了dumps,dump,loads,load 4个功能
1 import json 2 s = '{"key1":"value1","key2":"value2"}' # ==> 用json模块将字符串转化成其他数据类型,字符串里出现引号必须用双引号 3 ret = json.loads(s) # ==> loads 由字符串转其他数据类型 4 print(ret,type(ret)) 5 6 ret = json.load(open('ethan.txt','r')) # ==> 将文档(内部是字符串格式)转换成python的其他数据类型 7 print(ret,type(ret)) # ==> 文档里是字典样式的字符串 8 9 l = '[11,22,3,56,75]'10 result =json.loads(l)11 print(result,type(result))12 # 总结:13 # json.loads()用于将形似字典、列表、元组的字符串,转换成字典、列表、元组14 # json.load() 用于将文档(内容是形似字典、列表、元组的字符串)转换成字典、列表、元组15 16 di = { "key1":"value1","key2":"value2"}17 ret = json.dumps(di) # ==> 将字典、列表、元组 转换成字符串格式18 print(ret,type(ret))19 20 json.dump(di,open('ethan.txt','a+')) # ==> 将字典、元组、列表转换成字符串格式并写入文档21 22 import pickle23 24 d = { 'name':'ethan','age':28}25 ret = pickle.dumps(d) # ==> pickle将字典、元组、列表转换成二进制26 print(ret,type(ret))27 28 l = [11,22,3,45,54]29 res = pickle.dumps(l)30 print(res)31 32 pickle.dump(d,open('ethan.txt','ab')) # ==> 将字典、元组、列表转换成二进制写入文档33 34 # 注意 dump load 不要一起运行,会报错,一步一步来35 36 f = open('ethan.txt','rb')37 r = pickle.loads(f.read()) # ==> 将二进制转换成字典、列表、元组38 print(r)