如何解决字典列表写入CSV设置自定义分隔符时的报错问题
问题分析与解决
你遇到的报错完全是因为参数传递顺序错误导致的。咱们先理清楚csv.DictWriter的参数规则:它的前两个位置参数是文件对象和字段名列表,而delimiter这类属于可选的关键字参数,必须放在位置参数之后。
你修改后的代码把delimiter='~'这个关键字参数放在了logKeys(本该是字段名的位置参数)前面,Python的参数解析规则不允许位置参数出现在关键字参数之后,所以直接抛出语法错误。
正确的写法有两种:
1. 位置参数在前,关键字参数在后
保持字段名的位置参数在前,分隔符参数用关键字传递:
w = csv.DictWriter(logFile, logKeys, delimiter='~')
2. 全部使用关键字参数(推荐,可读性更高)
明确指定每个参数的名称,彻底避免顺序混淆:
w = csv.DictWriter(logFile, fieldnames=logKeys, delimiter='~')
这样修改后,你的代码就能正常使用~作为分隔符写入CSV文件了。
内容的提问来源于stack exchange,提问作者Shankar
相关产品推荐
相关产品推荐

