You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用csv.writer将字典写入CSV时,如何消除字符间的空格?

问题原因

你遇到的字符间自动加空格的问题,核心是用错了csv.writer的writerow方法:

  • writerow()要求传入字段组成的列表/可迭代对象,但你直接传了一个拼接好的字符串。字符串本身是字符的迭代器,所以每个字符会被当成独立字段。
  • 再加上你设置了delimiter=' ',csv模块会自动在每个字段(也就是每个字符)之间插入空格分隔,最终就出现了每个字符间都有空格的情况。
解决方法

方法1:保留拼接格式作为单个字段写入

如果想保持dates:key:count这种格式作为一行内容,只需要把字符串放进一个列表里,让writerow把它当成一个字段处理:

import csv

# 注意:不要用dict作为变量名,会覆盖Python内置的dict类型
with open(r'Redacted', 'w', newline='') as reportCSV:
    # 如果不需要空格分隔,删掉delimiter=' '用默认逗号;如果确实要空格分隔则保留
    writer = csv.writer(reportCSV)
    for dates, info in your_dict.items():
        for key in info:
            # 把拼接后的字符串放在列表中,作为单个字段传入
            writer.writerow([f"{dates}:{key}:{str(info[key])}"])

方法2:生成标准CSV格式(更推荐)

如果是要做规范的CSV文件,建议把dates、key、count作为独立字段,让csv模块自动处理分隔,后续读取和分析会更方便:

import csv

with open(r'Redacted', 'w', newline='') as reportCSV:
    writer = csv.writer(reportCSV)  # 默认分隔符是逗号,符合CSV标准
    # 可选:写入表头
    writer.writerow(['日期', '事件', '发生次数'])
    for dates, info in your_dict.items():
        for key in info:
            # 直接传入三个字段,csv模块会自动用分隔符分开
            writer.writerow([dates, key, info[key]])

额外注意点

  • 不要用dict作为变量名,这会覆盖Python内置的dict类型,引发潜在问题。
  • 写入CSV时建议加上newline=''参数,避免不同系统下出现多余空行的问题。

内容的提问来源于stack exchange,提问作者Shirt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:13:16