如何为Python的csv.DictWriter字段名设置quotechar(类似csv.reader)?
关于csv.DictWriter字段名设置quotechar的解决方案
当然可以实现!csv.DictWriter完全支持自定义字段名的引号规则,和csv.reader的用法思路一致,只需要在初始化时配置好对应的参数就行。
核心参数说明
要实现非数字字段名被指定引号包裹,你需要用到两个关键参数:
quotechar:设置你想使用的引号字符,比如你定义的'"'quoting:设置引号的应用规则,这里推荐用csv.QUOTE_NONNUMERIC,它会自动给所有非数字类型的内容(包括字段名)加上引号
修改后的完整代码示例
import csv fieldnames = ['a', 'b', 'c', 'd', 'e'] separator = ',' quote = '"' table = [{'a': 10, 'c': 12, 'b': 11, 'e': 14, 'd': 13}] with open('output1.csv', 'w', newline='') as csvfile: writer = csv.DictWriter( csvfile, fieldnames=fieldnames, delimiter=separator, quotechar=quote, quoting=csv.QUOTE_NONNUMERIC ) writer.writeheader() writer.writerows(table)
效果说明
运行这段代码后,生成的output1.csv内容会是这样:
"a","b","c","d","e"
10,11,12,13,14
可以看到字段名全部被你指定的双引号包裹,而数字类型的数值则保持无引号的状态,完全符合你的需求。
如果需要更精细化的控制(比如只给字段名加引号,数值不加),上面的配置已经能满足;如果有特殊场景,也可以手动处理字段名后再调用writeheader(),不过内置的参数配置已经足够应对大多数情况啦。
内容的提问来源于stack exchange,提问作者BrightHalo
相关产品推荐
相关产品推荐

