迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中将字典写入 CSV

作者:迹忆客 最近更新:2023/12/17 浏览次数:

本教程将介绍如何在 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 文件的布局在第一列中包含了所有的键,而值在第二列中。

使用字典数组的例子

这是一个单一字典的例子。如果你想在一个 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 模块包含了所有必要的功能和工具,以将字典写入 csv 文件。使用函数 writer()DictWriter() 都可以很容易地实现这个功能。

另外要注意的是,要把操作文件的块用异常处理包起来,以确保在它破坏东西之前就能捕获到 IO 错误。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

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 中解析日志文件

发布时间: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 关键字创建的内联函数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便