概念
序列化:将文件从内存持久化保存到硬盘的过程
反序列化: 将数据从硬盘加载到内存的过程
序列化的两种方法
dumps: 将数据转换成为JSON字符串,不会将数据保存带文件里
dump: 将数据转换成为JSON字符串的同时写入到指定文件
反序列化的两种方法
loads: 将JSON字符串加载成为python里的数据
load: 读取文件,把读取的内容加载成为python里的数据
产生背景
内存中的数据经转化持久存储,或者通过网络发送给其他终端
文件操作的不足
write时,只能写入字符串或者二进制(需要转换), 字典,列表,列表都不能直接写进去
补充: repr & str将对象转换为字符串
将数据转换为二进制则需要使用pickle模块
代码实现
import json
names = ['zhangsan', 'lisi', 'wangmazi']
x = json.dumps(names) # dumps的作用是将数据转换为字符串
print(x, type(x))
file =open('names.txt','w', encoding='utf-8')
file.write(x)
file.close()
names = ['zhangsan', 'Jack', 'Tom']
file =open('names.txt','w', encoding='utf-8')
json.dump(names, file)
file.close
x = '{"name":"Jack", "age":18}' # 符合JSON规则的字符串
p = json.loads(x)
print(p)
print(p['name'])
# load读取一个文件,并且文件里的json字符串加载成为一个对象
file1 = open('names.txt', 'r', encoding='utf-8')
y = json.load(file1)
print(y)
file1.close()
下续(JSON数据类型)