python将数据保存到文件的多种实现方式

  • 🌈所属专栏:【python】
  • 作者主页:  Mr.Zwq
  • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

目录

一、原始方式

二、使用自带模块

1.json

保存

读取

2.pickle

保存

读取

3.csv

保存

读取

总结


一、原始方式

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users_list.txt','w') as f:
    f.write(str(users_list))    # 注意使用str函数将列表转换成字符串类型

# 从文件读取数据
with open('users_list.txt','r') as f:
    users_list=eval(f.read())   # 使用eval函数将字符串类型数据转换成列表
    print(users_list)
    print(type(users_list))

打开该文件查看:

查看输出:


 

二、使用自带模块

1.json

保存

import json

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users.json','w') as f:
    json.dump(users_list,f)

打开该文件查看:

可以发现中文被进行了默认的自动编码,如若不想进行编码转换,可设置  ensure_ascii=False,即修改为:

# 将数据写入文件并保存
with open('users.json','w') as f:
    json.dump(users_list,f,ensure_ascii=False)

再次打开该文件查看 :


读取

# 从文件读取数据
with open('users.json','r') as f:
    users=json.load(f)
print(users)
print(type(users))

查看输出

读取出来数据已经是列表类型了,可直接进行操作。

2.pickle

保存

import pickle

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users_list.pkl', 'wb') as f:
    pickle.dump(users_list, f)

注意:这里保存的模式是wb,即二进制方式写入,因为pickle是按照二进制的方式进行保存、读取数据的。

打开该文件查看:


读取

# 从文件读取数据
with open('users_list.pkl', 'rb') as f:
    users_list = pickle.load(f)
print(users_list)
print(type(users_list))

注意这里使用 rb模式,即二进制方式读取 。

查看输出:

 读取出来数据已经是列表类型了,可直接进行操作。 

3.csv

保存

import csv

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
# 需指定 newline='' ,不然保存时默认会间隔空行,可自行去除后查看对比
with open('users.csv','w',newline='') as f:     
    csv_writer=csv.DictWriter(f,fieldnames=users_list[0].keys())    # 创建一个csv写入对象,表头为用户字典的键
    csv_writer.writeheader()    # 写入表头
    csv_writer.writerows(users_list)    # 写入数据

打开文件查看(csv格式文件可以用excel打开并进行编辑):

 


读取

# 从文件读取数据
with open('users.csv','r') as f:
    users_list = csv.DictReader(f)
    users_list=[i for i in users_list]
    print(users_list)

 查看输出

读取出来数据是一个 csv.DictReader 对象,遍历转化为列表后进行操作。

总结

感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

👍🏻也欢迎你,关注我。👍🏻

如有疑问,可在评论区留言哦~

 

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.Zwq

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

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

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

打赏作者

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

抵扣说明:

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

余额充值