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

news2024/10/5 22:23:55
  • 🌈所属专栏:【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 对象,遍历转化为列表后进行操作。

总结

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

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于FPGA对 DDR4 (MT40A256M16)的读写控制 3

关于FPGA对 DDR4 (MT40A256M16)的读写控制 3 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 关于FPGA对 DDR4 (MT40A256M16)的读写控制 3一、引言二、DDR的功能性描述三、SDRAM设备中模式寄存器…

基于IDEA的Maven简单工程创建及结构分析

目录 一、用 mvn 命令创建项目 二、用 IDEA 的方式来创建 Maven 项目。 (1)首先在 IDEA 下的 Maven 配置要已经确保完成。 (2)第二步去 new 一个 project (创建一个新工程) (3)…

【windows|003】计算机硬件基础及存储单位

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专家博主 💊交流社区&…

阿里云平台创建设备及连接

使用阿里云平台创建项目,利用MQTT.fx软件配置相关的连接,在软件上完成消息的订阅与推送,与手机APP进行同步数据。了解MQTT相关的协议。 1.注册阿里云平台账号,完成实名注册! 618创新加速季_新迁入云享5亿算力补贴-阿里…

005-OSPF基本配置

OSPF基本配置 OSPF (Open Shortest Path First) 是一种链路状态路由协议,它属于内部网关协议(IGP)类别,用于在自治系统(AS)内部路由 IP 数据包。OSPF 通过使用 Dijkstra 算法计算最短路径树来确定到达每个…

电影时间首页(HTML+css)

使用HTMLcss制作的一个简单的电影时间首页 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>电影时间首页</title></head><body><!--header begin--><div style"height: 63px;">&…

从0开始开发一个简单web界面的学习笔记(HTML类)

文章目录 什么是HTML页面vscode 开放工具搭建第一个HTML页面编写vscode 如何快速生成代码框架html标签——注释、标题、段落、换行标签格式化标签img 标签(src 属性01)img 属性02(alt、title、width/height、border)a标签href属性a标签target属性表格标签01 基本属性表格标签02…

随想录Day63 | 单调栈 42. 接雨水 84.柱状图中最大的矩形

随想录Day63 | 单调栈 42. 接雨水 84.柱状图中最大的矩形 42. 接雨水 题目链接 42 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 第一次提交 class Solution { public:int trap(vector<int>…

买家用洗地机需要注意什么?全面评测热门洗地机品牌

对于忙碌的打工族来说&#xff0c;“做家务”是一件非常消费时间精力的事情&#xff0c;但它又是生活中的一部分&#xff0c;为了解决这些矛盾点&#xff0c;越来越多的清洁家电涌向市场&#xff0c;像集扫地、吸尘、洗地为一体的洗地机&#xff0c;在推拉之间便把脏污处理干净…

英码科技携手昇腾打造“三位一体”智慧化工解决方案,使能化工产业管理更高效、智能

我国是世界公认的化工大国。然而&#xff0c;大部分化工园区的日常管理方式较为传统&#xff0c;各园区、厂区的门禁、视频、停车场等子系统犹如一个个独立的“岛屿”&#xff0c;每个“岛屿”需要耗费大量人力及时间成本进行巡检、记录、上报&#xff0c;且不能做到全域、全时…

JavaFX DatePicker

JavaFX DatePicker允许从给定日历中选择一天。DatePicker控件包含一个带有日期字段和日期选择器的组合框。JavaFX DatePicker控件使用JDK8日期时间API。 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.DatePicker; import j…

C语言之操作符

目录 一、二进制 原码、反码、补码 二、移位操作符 位操作符 三、 逗号表达式 四、下标访问[]、函数调用() 五. 操作符的属性 整型提升 算术转换 六、总结 一、二进制 其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。 其实10进制是生活中经常使用的&am…

docker容器中连接宿主机mysql数据库

最近要在docker中使用mysql数据库&#xff0c;首先考虑在ubuntu的镜像中安装mysql&#xff0c;这样的脚本和数据库都在容器中&#xff0c;直接访问localhost&#xff1a;3306&#xff0c;脚本很简单&#xff0c;如下&#xff1a; import pymysql# 建立数据库连接 db pymysql.…

港硕上岸鹅厂算法岗,谈谈感受和心得!

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

技术革新| 卓翼飞思受邀出席2024士兵智能装备与技术学术大会

6月14日&#xff0c;由中国兵器装备集团智元研究院/智元国家重点实验室、中国兵工学会主办的 “2024士兵智能装备与技术学术大会” 在杭州隆重召开。卓翼智能应邀出席本次大会&#xff0c;并发表了题为《新概念飞行器及多智能体集群仿真系统研究》的演讲报告。 本次大会以“智能…

常见的网络设备

引入 园区网络安全部署场景 1、路由器&#xff1a; 跨网段通信设备 。 2、交换机&#xff1a; 同网段或跨网段通信设备。 3、AntiDDoS &#xff1a; DDoS 防御系统&#xff0c;通常旁挂部署于网络出口处&#xff0c; 位于防火墙上游&#xff0c;用于减轻防火墙报文处理负担。 …

NocoBase调研

项目概述&#xff1a; nocobase是一个开源的无代码和低代码开发平台&#xff0c;允许用户快速部署私有、可控、易于扩展的系统。 NocoBase官网&#xff1a;NocoBase-开源、私有部署的轻量级无代码和低代码开发平台 核心特性&#xff1a; 强调NocoBase的数据模型驱动方法&am…

JVM 性能分析案列——使用 JProfiler 工具分析 dump.hprof 堆内存快照文件排查内存溢出问题

在 windows 环境下实现。 参考文档 一、配置 JVM 参数 配置两个 JVM 参数&#xff1a; -XX:HeapDumpOnOutOfMemoryError&#xff0c;配置这个参数&#xff0c;会在发生内存溢出时 dump 生成内存快照文件&#xff08;xxx.hprof&#xff09;-XX:HeapDumpPathF:\logs&#xff…

uniapp使用伪元素实现气泡

uniapp使用伪元素实现气泡 背景实现思路代码实现尾巴 背景 气泡效果在开发中使用是非常常见的&#xff0c;使用场景有提示框&#xff0c;对话框等等&#xff0c;今天我们使用css来实现气泡效果。老规矩&#xff0c;先看下效果图&#xff1a; 实现思路 其实实现这个气泡框的…

线代的学习(矩阵)

1.矩阵的乘法 矩阵实现满足&#xff1a;内标相等 矩阵相乘之后的结果&#xff1a;前行后列 需要注意&#xff1a;1.矩阵的乘法不具有交换律&#xff1a;AB!BA 2.矩阵的乘法满足分配律&#xff1a;A(BC) AB AC 抽象逆矩阵求逆矩阵 方法1.凑定义法、 方法2.长除法 数字型矩阵…