Python json and pickle
Python json and pickle
一、json
- 定义:把一个内存对象转成字符串的形式【存入到硬盘】叫做序列化
- 作用:用于字符串 和 python数据类型间进行转换,序列化和反序列化
- 好处:
- 所有的语言都支持json格式
- 语法:
- json 模块提供四个功能分别是:dumps、dump、loads、load. 详解如下:
1.json.dumps -序列化. 针对的是内存对象.
2.json.dump -序列化. 针对的是文件句柄. -->第一个参数是序列化对象.第二个参数是打开文件的句柄
3.json.loads -反序列化. 针对的是内存对象.
4.json.load -反序列化 针对的是文件句柄. -->传入文件句柄.
- 将字典中的数据存入硬盘中?
date = {
"name":"Harry",
"age":27,
"sex":"M"}
- 解决办法一
# 将date字典数据写入文件方法
f = open("Date.txt","w",encoding="utf-8")
f.write(str(date))
f.close()
# 从文件中读取类容. 注意此处取文件中数据时. 需要转换成字典.
f = open("Date.txt","r",encoding="utf-8")
Date = eval(f.read())
print(Date)
print(Date["age"])
f.close()
- 解决办法二(JSON 序列化两种方法)
import json
f = open("Date.txt","w",encoding="utf-8")
# dumps 用法
# f.write(json.dumps(date))
# dump 用法
json.dump(date,f)
f.close()
- JSON反序列化两种方法
import json
f = open("Date.txt",encoding="utf-8")
# loads 用法
# date = json.loads(f.read())
# load 用法
date = json.load(f)
print(date)
print(date["age"])
- 总结
-
- 文件只能接收字符串 或 二进制bytes类型数据.
- 如果在序列化时用dumps, 那么在反序列化时必须用loads。 否则会报错,一一对应。
二、pickle
- 语法:
-
- pickle 模块提供四个功能分别是:dumps、dump、loads、load. 详解如下:
1.pickle.dumps -序列化. 针对的是内存对象.
2.pickle.dump -序列化. 针对的是文件句柄. 第一个参数是序列化对象. 第二个参数是打开文件的句柄
3.pickle.loads -反序列化. 针对的内存对象.
4.pickle.load -反序列化. 针对文件句柄. 传入文件句柄
- 先需要将字典中的数据存入硬盘中. 如何操作?
date = {
"name":"Harry",
"age":27,
"sex":"M"}
- 解决办法一(pickle 序列化两种方法)
import pickle
f = open("date.pki","wb")
# dumps 用法
# f.write(pickle.dumps(date))
# dump 用法
pickle.dump(date,f)
- pickle 反序列化两种方法
import pickle
f = open("date.pki","rb")
# loads 用法
# date = pickle.loads(f.read())
# load 用法
date = pickle.load(f)
print(date)
print(date["sex"])
- json and pickle 区别总结:
- json :不能序列化函数等复杂数据类型,只能序列化和反序列化普通数据类型。 任何语言都支持json
- pickle:支持python中所有的数据类型,也就是说python中所有的数据类型都可被pickle。 原因:pickle是python自己本身的

浙公网安备 33010602011771号