我使用的是CSV文件示例,如下所示:
3256221406917,DESCRIPTION1,"U Bio, U",food
3256223662106,DESCRIPTION2,"U Bio, U",food
我想用逗号来解析它:
def import_csv(csvfilepath):
data = []
product_file = open(csvfilepath, "r")
reader = csv.reader(product_file, delimiter=',')
for row in reader:
if row: # avoid blank lines
columns = [row[0], row[1], row[2], row[3], row[4]]
data.append(columns)
return data
但是在运行时它会返回“列表索引超出范围”的问题。
我相信问题可能出在第三和第四列,因为有双引号和双引号。但我不明白为什么似乎没有使用delimiter = ','
。
你知道为什么吗?谢谢您的帮助!
编辑:
谢谢大家,我只是不确定为什么在“”之后读取“,”,以及是否可以更改它,但是删除“”似乎更简单!
答案 0 :(得分:0)
我相信您可以为此使用熊猫:
df = pd.read_csv('your-data.csv')
df_to_list = df.values.tolist()
答案 1 :(得分:0)
我认为您不需要csvreader,并且我想如果您想对所有逗号强制执行拆分,那么我想您可以尝试以下方法:
def import_csv(csvfilepath):
data = []
with open(csvfilepath, "r") as product_file:
for r in productfile:
row = r.split(",")
if len(r) == 5: # Vary this to change the sensitivity
columns = [row[0], row[1], row[2], row[3], row[4]]
data.append(columns)
return data
答案 2 :(得分:0)
尝试更换
列= [行[0],行[1],行[2],行[3],行[4]] 与 列= [行[0],行[1],行[2],行[3]]
由于示例中CSV中只有4列。