在 Python 中将字典写入 CSV
本教程将介绍如何在 Python 中将一个字典变量写入 csv 文件。
在 Python 中使用 csv
模块将一个字典写入 CSV 文件
Python 模块 csv
包含了操作 csv 文件的工具和函数。有两种简单的方法可以用来将字典写入 csv 文件。writer()
和 DictWriter()
。
这两个方法的功能类似,唯一不同的是 DictWriter()
是一个包含更多功能的封装类。
让我们用一个带有几个键-值对的字典设置一个初始示例:
dct = {"Name": "John", "Age": "23", "Country": "USA"}
在第一个例子中,我们使用 writer()
来访问一个新的 csv 文件并将字典插入其中。
import csv
dct = {"Name": "John", "Age": "23", "Country": "USA"}
with open("dct.csv", "w") as f:
writer = csv.writer(f)
for k, v in dct.items():
writer.writerow([k, v])
由于文件访问类型是 w
,csv 文件 dct.csv
的内容将被新的更改覆盖。如果该文件不存在,那么它将在同一目录下自动创建。
csv 文件的内容将输出:
由于只有一个字典条目,csv 文件的布局在第一列中包含了所有的键,而值在第二列中。
使用字典数组的例子
这是一个单一字典的例子。如果你想在一个 csv 文件中插入多个字典怎么办?
在这个例子中,将使用函数 DictWriter()
来写入 csv 文件。第一个例子的 CSV 布局也需要改变,因为有多个相同键的值。
第一行应该包含键标签,随后的几行将包含每个字典条目的值。
首先,声明一个具有相同键值的字典数组。
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
现在使用 csv
模块和 DictWriter()
将这个字典数组写入 csv 文件。
import csv
labels = ["Name", "Age", "Country"]
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
try:
with open("csv_dct.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=labels)
writer.writeheader()
for elem in dct_arr:
writer.writerow(elem)
except IOError:
print("I/O error")
DictWriter()
中的参数 fieldnames
分配给变量 labels
,它是一个字典数组的键标签数组。
练习用异常处理(try ... except
)来包装操作文件的代码也是不错的。这是为了防止外部错误或关于文件写入过程的不兼容。
输出:
总而言之,csv
模块包含了所有必要的功能和工具,以将字典写入 csv 文件。使用函数 writer()
和 DictWriter()
都可以很容易地实现这个功能。
另外要注意的是,要把操作文件的块用异常处理包起来,以确保在它破坏东西之前就能捕获到 IO 错误。
相关文章
Python 中的平滑数据
发布时间:2023/12/20 浏览次数:101 分类:Python
-
本教程演示了如何在 Python 中平滑图形中的曲线。Python 在数据分析和可视化方面有着广泛的应用。
Python 中捕获键盘中断错误
发布时间:2023/12/20 浏览次数:187 分类:Python
-
本教程讨论如何在 Python 中捕获 KeyboardInterrupt。当用户使用 Ctrl + C 或 Ctrl + Z 手动尝试停止正在运行的程序时,或在 Jupyter Notebook 的情况下通过中断内核
在 Python 中实现低通滤波器
发布时间:2023/12/20 浏览次数:101 分类:Python
-
本教程讨论如何在 python 中创建低通滤波器。低通滤波器是信号处理基础中的一个术语,经常用于过滤信号以获得更准确的结果。
在 Python 中使用 requests 模块实现 Curl 命令
发布时间:2023/12/20 浏览次数:72 分类:Python
-
在本文中,你将学习如何使用 Python 中的 Requests 模块实现 curl 命令。我们讨论了 Get、Post、Put 和 Delete curl 命令。
在 Python 中使用 fetchall() 从数据库中提取元素
发布时间:2023/12/20 浏览次数:142 分类:Python
-
本文解释了 Python 中 fetchall() 方法的实现。该程序为数据库创建一个游标并处理错误异常。导出的输出给出了查询中提供的特定表中的元素列表。
在 Python 中解析日志文件
发布时间:2023/12/20 浏览次数:180 分类:Python
-
了解如何在 Python 中解析日志文件。日志文件包含有关在软件系统或应用程序运行期间发生的事件的信息。这些事件包括错误、用户提出的请求、Bug 等。
在 Python 中声明一个没有值的变量
发布时间:2023/12/20 浏览次数:94 分类:Python
-
在本教程中,我们将讨论如何在 Python 中声明一个变量而不赋值。变量是保留的内存位置,可以存储一些值。换句话说,Python 程序中的变量将数据提供给计算机以处理操作。
在 Python 中定义类全局变量
发布时间:2023/12/20 浏览次数:77 分类:Python
-
本教程演示了如何定义类全局变量。全局变量是一个可见变量,可以在程序的每个部分使用。全局变量也不在任何函数或方法中定义。
在 Python 中的 Lambda 函数中传递多个参数
发布时间:2023/12/20 浏览次数:133 分类:Python
-
了解如何在 Python 中的 Lambda 函数中传递多个参数。lambda 形式或 lambda 表达式是 Python 中的匿名函数。它们是可以使用 Python 中保留的 lambda 关键字创建的内联函数。