CSV读取器在python中以单个字符串的形式返回三列值



我正在尝试读取CSV文件,该文件具有以下数据

"27@21","","2725 abc dr"","","Mumbai","IN",""

使用以下代码

with open(file, "r") as csv_file:
reader = csv.reader(csv_file, delimiter=',')
for row in reader:
colValues = list(row)
print(colValues)

它以的形式输出

['27@21', '', '2725 abc dr",",Mumbai"', 'IN', '']

如果您查看上面的粗体输出,它是三列输入的组合。

我希望这个输出和给定的输入相同。

注意:我正在创建一个实用程序来处理任何具有意外特殊字符(如列值中任何位置的双引号(的csv文件,并在删除这些字符的情况下创建新文件。为此,我需要解决这个问题。

这最终通过在读取器方法中添加一个参数(quotechar(来解决,如下所示,

reader = csv.reader(csv_file, delimiter=',', quotechar="'")
Input :  "27@21","","2725 abc dr"","","Mumbai","IN",""
Output : ['"27@21"', '""', '"2725 abc dr""', '""', '"Mumbai"', '"IN"', '""']

当输入csv文件中的列数与输出列表相同时,这是预期的输出。

最新更新