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

如何通过Python生成符合指定格式的CSV输出文件?

解决Python生成指定格式CSV的问题

咱们来看下你的需求:你想生成每行开头是字典的键,后面跟着对应列表元素的CSV文件,但当前代码输出不符合预期。先分析下原代码的问题,再给出修正方案。

原代码的问题

你的原代码直接用csv_writer.writerows(d.items()),这里d.items()返回的是类似('a', [1,3,4])这样的元组。csv.writer处理这种元组时,会把第一个元素(键)作为第一列,然后把整个列表转换成字符串作为第二列,最终输出的CSV会是这样:

a,"[1, 3, 4]"
b,"[2, 3, 4]"
c,"[1]"

这显然不是你想要的格式。

修正后的代码

我们需要把每个键和它对应的列表元素合并成一个新的列表,这样csv.writer就能把每个元素作为单独的列写入。如果想要空格分隔的格式(和你给出的示例一致),可以指定delimiter=' ';如果是标准逗号分隔的CSV,去掉这个参数即可。

import csv
d = {'a': [1, 3, 4], 'b': [2, 3, 4], 'c': [1]}

# 生成空格分隔的CSV(匹配你的示例格式)
with open("result.csv", "w", newline='') as csv_file:
    csv_writer = csv.writer(csv_file, dialect='excel', delimiter=' ')
    # 遍历每个键值对,合并键与值列表为一行
    for key, values in d.items():
        csv_writer.writerow([key] + values)

最终输出效果

运行后,result.csv的内容会和你期望的一致:

a 1 3 4
b 2 3 4
c 1

补充说明

  • 添加newline=''是Python的csv模块官方推荐的写法,能避免在Windows系统下写入CSV时出现多余的空行。
  • 如果需要标准逗号分隔的CSV,只需要去掉delimiter=' '参数即可,输出会是a,1,3,4这样的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:18