coma分隔符CSV Python问题

2024-09-30 00:24:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的CSV文件示例如下:

3256221406917,DESCRIPTION1,"U Bio,  U",food
3256223662106,DESCRIPTION2,"U Bio,  U",food

我想用comas来解析它:

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 = ','似乎没有被使用。你知道吗

你知道为什么吗?谢谢你的帮助!你知道吗

编辑:

谢谢大家,我只是不知道为什么“,”后读''和如果有办法改变它,但似乎更简单的删除'''之前!你知道吗


Tags: columns文件csv示例datafoodproductreader
3条回答

我不认为您需要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

我相信你可以用熊猫来做这个:

df = pd.read_csv('your-data.csv')
df_to_list = df.values.tolist()

尝试替换

列=[行[0],行[1],行[2],行[3],行[4]] 具有 列=[行[0],行[1],行[2],行[3]]

因为在您的示例中,CSV中只有4列。你知道吗

相关问题 更多 >

    热门问题