You need to enable JavaScript to run this app. 如何将多个数组按对应列逐行写入CSV文件
优惠活动
大模型
产品
解决方案
定价
更多

如何将多个数组按对应列逐行写入CSV文件

问题原因

你当前写法的问题在于csv.DictWriter的writerows()方法要求传入由每行对应字典组成的可迭代对象,你直接传入了单个包含三个完整数组的字典,会把整个数组作为单个值写入同一行,因此得到错误的输出格式。

修复代码

你只需要用zip()方法按位置配对三个数组的元素,逐行构造字典写入即可,示例如下:

import csv

# 替换为你实际的三个数组
number1 = [0, 1, 2, 3]
number2 = [10, 8, 9, 2]
number3 = [3, 4, 5, 3]

# 新增newline=''参数避免Windows下输出出现多余空行
with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['number1', 'number2', 'number3']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    # 按位置配对三个数组的元素逐行写入
    for n1, n2, n3 in zip(number1, number2, number3):
        writer.writerow({
            'number1': n1,
            'number2': n2,
            'number3': n3
        })

如果你希望用writerows批量写入提升效率,也可以批量构造行列表后写入:

# 替换上述逐行写入的循环即可
rows = [{'number1': n1, 'number2': n2, 'number3': n3} for n1, n2, n3 in zip(number1, number2, number3)]
writer.writerows(rows)

补充说明

如果你的数组是numpy数组类型,上述代码同样适用,不需要额外做转置操作,zip()会自动按索引提取每个数组的对应位置元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:42:03