昏迷分隔符CSV 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 = ','似乎没有被使用。

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

编辑:

谢谢大家,我只是不确定为什么","是在"之后读的,如果有办法改变它,但删除之前的"似乎更简单!

我相信你可以使用panda来实现这一点:

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

尝试更换

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

因为在您的示例中CSV中只有4列。

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

相关内容

  • 没有找到相关文章

最新更新