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

将csv_reader对象转为list时,为何每个数据列表后都跟空列表?

为什么用list()转换csv_reader后每个数据列表后都跟着空列表?

我尝试使用list()函数将csv_reader对象转换为列表,打印后发现结果中每个数据列表后都跟着一个空列表。

复现代码:

import csv
with open('data.csv') as file:
  reader = csv.reader(file)

print(list(reader))

执行结果:

[['trs_id', 'prd_id', 'prc'], [], ['1000', '1', '15'], [], ['1001', '2', '25'], []]

原因分析

这是因为你的data.csv文件里,每行有效数据后面都存在空行(甚至文件末尾可能也有多余的换行)。csv.reader读取文件时,会把没有任何字段的空行解析成空列表,最终就出现了有效数据列表和空列表交替的结果。

比如你的csv文件内容大概率是这样的:

trs_id,prd_id,prc

1000,1,15

1001,2,25

解决办法

可以在读取时过滤掉空列表,只保留非空的行数据:

import csv

with open('data.csv') as file:
    reader = csv.reader(file)
    # 过滤空行对应的空列表
    filtered_data = [row for row in reader if row]
    print(filtered_data)

执行后结果会变成:

[['trs_id', 'prd_id', 'prc'], ['1000', '1', '15'], ['1001', '2', '25']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:47:11