Python 文件的序列化和反序列化

接上篇 Python 文件的读写

一、文件的序列化

上篇提到,f.write()函数只能将字符串(str)类型写入文件,但其他类型例如列表、字典等无法写入,需要提前转换再写入文件。一般不能直接用str强制转换数据类型,会导致数据的改变及不匹配等问题。

按照某种规则,把内存中的数据转换为字节序列,保存到文件中,就称作文件的序列化。Python提供了JSON模块来实现数据的序列化和反序列化。

序列化的两种方式:

  1. json.dumps()
import json

f = open("test.txt", "w")

list = ["zhangsan", "lisi", "wangwu"]
names = json.dumps(list)
f.write(names)

f.close()
  1. json.dump()

在将对象转换为字符串的同时,制定一个文件的对象,然后把转换后的字符串写入到改文件里。

import json

f = open("test.txt", "w")

list = ["zhangsan", "lisi", "wangwu"]
json.dump(list, f)

f.close()

二、反序列化

将json的字符串转化为一个python对象

首先测试一下直接读取可不可以。

f = open("test.txt", "r")

content = f.read()

print(content)
print(type(content))

f.close()

可以看到虽然读取成功,但类型是str。但我们知道我们需要读取的应该是一个列表类型,所以需要反序列化。
在这里插入图片描述
反序列化的两种方式:

  1. json.loads()
import json

f = open("test.txt", "r")

content = f.read()
result = json.loads(content)  # 将json字符串转化为python对象

print(result)
print(type(result))

f.close()

类型成功转换为了list
在这里插入图片描述

  1. json.load()
import json

f = open("test.txt", "r")

result = json.load(f)  # 直接转换文件

print(result)
print(type(result))

f.close()

结果同样是list
在这里插入图片描述


总结

一般序列化用的比较多,用的最多的是json.dumps()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湫兮如风i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值