使用DictWriter可自动处理字典键到CSV列的映射,支持定义列序、忽略多余键(extrasaction='ignore')、填充缺失值(restval='N/A'),并避免手动转换数据结构;配合encoding='utf-8'解决中文乱码,newline=''防止空行,提升代码健壮性与可维护性。

在Python中,要将字典数据写入CSV文件,最直接且推荐的方式是使用内置
csv
DictWriter
import csv
# 假设我们有一些字典数据,每个字典代表一行记录
data = [
{'name': '张三', 'age': 30, 'city': '北京'},
{'name': '李四', 'age': 24, 'city': '上海'},
{'name': '王五', 'age': 35, 'city': '广州', 'occupation': '工程师'} # 注意这里王五多了一个'occupation'键
]
# 定义CSV文件的列名。这个列表的顺序决定了CSV文件中列的顺序,
# 并且它也决定了哪些字典键会被写入。
fieldnames = ['name', 'age', 'city', 'occupation', 'email'] # 甚至可以包含一些字典中没有的键
# 指定输出文件路径
output_file = 'my_records.csv'
try:
# 以写入模式打开文件,并指定newline=''以避免空行问题,encoding='utf-8'处理中文等字符
with open(output_file, 'w', newline='', encoding='utf-8') as csvfile:
# 创建DictWriter实例。fieldnames参数是必需的。
# extrasaction='ignore' 会忽略字典中存在但fieldnames中未定义的键。
# restval='N/A' 会用 'N/A' 填充字典中缺失但fieldnames中定义的键。
writer = csv.DictWriter(csvfile, fieldnames=fieldnames,
extrasaction='ignore', restval='N/A')
writer.writeheader() # 写入CSV文件的标题行(即fieldnames)
# 写入所有字典数据
writer.writerows(data)
print(f"数据已成功写入 {output_file}")
except IOError as e:
print(f"写入文件时发生I/O错误: {e}")
except Exception as e:
print(f"发生未知错误: {e}")
DictWriter
writer
在Python的
csv
DictWriter
writer
DictWriter
DictWriter
csv.writer
KeyError
而
DictWriter
fieldnames
fieldnames
extrasaction
'ignore'
fieldnames
restval
立即学习“Python免费学习笔记(深入)”;
这种“声明式”的写入方式,让代码更加健壮和可读。我不用担心数据的内部顺序,只需要定义好输出的结构,剩下的交给
DictWriter
fieldnames
这正是
DictWriter
DictWriter
extrasaction
restval
首先,
fieldnames
处理额外字段 (extrasaction
fieldnames
DictWriter
ValueError
DictWriter
extrasaction
'ignore'
fieldnames
处理缺失字段 (restval
fieldnames
DictWriter
restval
'N/A'
'None'
这两个参数结合使用,让
DictWriter
DictWriter
newline
在Python中处理CSV文件,尤其是涉及到非英文字符(比如中文)时,编码问题和
newline
编码问题 (encoding='utf-8'
UnicodeEncodeError
open()
encoding='utf-8'
encoding='utf-8-sig'
utf-8-sig
utf-8
newline=''
csv
'b'
\n
\r\n
\n
csv
newline=''
\n
\r\n
csv
\r\n
open()
newline
newline=''
csv
csv
以上就是python中怎么把字典写入CSV文件?的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号