Python中如何将CSV导入为数组?代码报‘str’无append属性求解
问题分析与修复方案
我来帮你拆解下代码报错的原因,以及如何实现你想要的功能:
错误原因
你收到的'str' object has no attribute append错误,核心问题是变量赋值逻辑搞反了:
v = row[1] v.append(v)
- 一开始你初始化了
v = [](列表类型),但进入循环后,你把row[1](CSV第二列的字符串值,哪怕是数字,csv.reader读出来默认也是字符串)赋值给了v,这时候v的类型从列表变成了字符串。 - 字符串是没有
append方法的,所以调用v.append(v)就会触发报错。
修正后的代码
你想要把第二列的浮点值存入列表(向量),正确的做法是直接把row[1]转成浮点型后添加到列表,而不是覆盖列表变量:
import csv with open('ThruputCSV.csv') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') v = [] # 如果CSV第一行是表头,先跳过表头行 # next(readCSV) for row in readCSV: # 将字符串转成浮点型,再添加到列表v中 v.append(float(row[1]))
额外说明
- 循环结束后,
v就是存储了所有第二列浮点数值的列表,符合你想要的“向量”需求。 - 如果你的CSV第一行是表头(比如列名),记得取消注释
next(readCSV)这一行,避免把表头字符串转成浮点型时触发新的错误。
内容的提问来源于stack exchange,提问作者user9158336
相关产品推荐
相关产品推荐

