要将Python字典转换为带头文件的CSV文件,请调用csv.DictWriter(fileobject, fieldnames) 方法。使用产生的写作者对象的writer.writeheader() 方法,不带参数,来写标题。这将写入作为fieldnames 传递的列名列表,例如,通过以下方式获得的字典键 [dict.keys()](https://blog.finxter.com/python-dict-keys-method/).
写完页眉后,你可以调用DictWriter.writerow() 方法来写行。
安装CSV
在我们看一个例子之前,请确保安装csv libray(如果你还没有),在你的终端/shell/命令行中使用以下命令。
pip install csv
例子 - 简单的 Dict 转 CSV,Dict 键为标题
下面的例子将 dictionary 写到 CSV 中,用 dict 的键作为列名,值作为行值。
import csv
# Define the dictionary
data = {'A':'X1', 'B':'X2', 'C':'X3'}
# Open the file in writing mode
with open('my_file.csv', 'w', newline='') as f:
# Create the writer with the dictionary keys as headers
writer = csv.DictWriter(f, fieldnames=data.keys())
# Write the header defined in the fieldnames argument
writer.writeheader()
# Write one or more rows
writer.writerow(data)
注意:我们使用 参数打开文件,以防止某些操作系统在 CSV 中插入空行。newline=''
结果文件'my_file.csv' ,看起来像这样。

例子 - 将Dict键作为标题的Dict列表转换为CSV
你可以在 Python 中轻松地将字典列表转换为 CSV 文件--通过使用 csv库。这是所有四种方法中最可定制的一种。
下面是将 Dict 列表转换为带标题行的 CSV 的六个简单步骤。
- 用import csv导入CSV库。
- 使用表达式
open('my_file.csv', 'w', newline=''),打开CSV文件。你需要换行参数,因为否则,你可能会在Windows中看到行之间的空行。 - 创建一个
csv.DictWriter()对象,传递文件和fieldnames参数。 - 使用表达式
salary[0].keys()将fieldnames参数设置为第一个 dictionary 的键。 - 用以下方法写头
writer.writeheader() - 写出字典的列表,使用
writer.writerows()
下面是复制&粘贴的完整代码。
salary = [{'Name':'Alice', 'Job':'Data Scientist', 'Salary':122000},
{'Name':'Bob', 'Job':'Engineer', 'Salary':77000},
{'Name':'Carl', 'Job':'Manager', 'Salary':119000}]
# Method 2
import csv
with open('my_file.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=salary[0].keys())
writer.writeheader()
writer.writerows(salary)
输出文件命名为'my_file.csv' 并位于同一文件夹中。
Name,Job,Salary
Alice,Data Scientist,122000
Bob,Engineer,77000
Carl,Manager,119000
你可以在CSV写入器的构造函数中定制它(例如,将分隔符从逗号',' 修改为空白' ' 字符)。