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