在 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 错误。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn相关文章 - Python CSV
- Python 逐行写入 CSV
- 使用 Python 将 XML 转换为 CSV
- 在 Python 中将列表写入 CSV 列
- 在 Python 中逐行读取 CSV
- 在 Python 中读取带有标题的 CSV
- 在 Python 中合并 CSV 文件