pickle模块与json模块

pickle模块与json模块

  • pickle与json模块用于序列化处理
  • pickle多用在python本身,其他语言并不支持
  • json可以用在pyt与其他语言之间的转化
  • pickle与json模块同样具有四个功能:load、loads、dump、dumps
  • 相对于pickle,json的局限性比较大,但同样必不可少
import pickle, json

# pickle.dumps(转换的对象)     将指定的对象转换成字节
# 直接转换
d = {1: "11", 2: "22"}
a = pickle.dumps(d)
print(a)  # b'\x80\x03}q\x00(K\x01X\x02\x00\x00\x0011q\x01K\x02X\x02\x00\x00\x0022q\x02u.'
# 文件操作
f = open("db.txt", "wb")  # 打开文件时要用"字节"方式打开
f.write(pickle.dumps(d))
f.close()

# pickle.dump(obj="将要进行转换的对象",file="文件名")     将转换的obj写入file,file为必要参数,所以dump只适用于文件操作
f = open("db.txt", "wb")  # 打开文件时要用"字节"方式打开
pickle.dump(d, f)
f.close()

# pickle.loads(形似对象)     将指定的字节转换成原格式
# 用于将形似列表、字典的字符串转换成相应的列表、字典;形似对象内部的字符串必须用双引号 # 直接转换 d = b'\x80\x03}q\x00(K\x01X\x02\x00\x00\x0011q\x01K\x02X\x02\x00\x00\x0022q\x02u.' a = pickle.loads(d) print(a) # {1: '11', 2: '22'} # 文件操作 f = open("db.txt", "rb") # 打开文件时要用"字节"方式打开 a = pickle.loads(f.read()) # pickle.load(file="文件名") 将文件转换成原数据对象,因为file为必要参数,所以load只适用于文件操作 f = open("db.txt", "rb") # 打开文件时要用"字节"方式打开 d = pickle.load(f) print(d) # {1: '11', 2: '22'} # json.dumps(转换的对象) 将指定的对象转换成字符串 # 直接转换 d = {1: "11", 2: "22"} a = json.dumps(d) print(a) # {"1": "11", "2": "22"} # 文件操作 f = open("db.txt", "w") # 打开文件时要用"非字节"方式打开 f.write(json.dumps(d)) f.close() # json.dump(obj="将要进行转换的对象",fp="文件名") 将转换的obj写入fp,fp为必要参数,所以dump只适用于文件操作 f = open("db.txt", "w") # 打开文件时要用"非字节"方式打开 json.dump(d, f) f.close() # json.loads(转换的内容) 将指定的字符串转换成原格式,因为json的对象必须是str所以 不做之间转换,只能进行文件操作 f = open("db.txt", "r") # 打开文件时要用"非字节"方式打开 a = json.loads(f.read()) print(a) # {'1': '11', '2': '22'} # pickle.load(file="文件名") 将文件转换成原数据对象,因为file为必要参数,所以load只适用于文件操作 f = open("db.txt", "r") # 打开文件时要用"字节"方式打开 d = json.load(f) print(d) # {1: '11', 2: '22'}

 

posted @ 2017-03-30 10:32  Grisom  阅读(122)  评论(0编辑  收藏  举报