使用Python从CSV中删除不需要的逗号

时间:2013-01-03 17:47:32

标签: python csv

我需要一些帮助,我有一个包含地址字段的CSV文件,无论谁将数据输入到原始数据库中,都使用逗号分隔地址的不同部分 - 例如:

公园街5号公寓

当我尝试使用CSV文件时,它将这一个条目视为两个单独的字段,而实际上它是一个字段。我使用Python来删除逗号之间的逗号,因为很容易将它们与实际存在的逗号区分开来,但这个问题让我感到难过。

感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用Python's CSV reader定义分隔和引用字符。例如:

使用此CSV:

1,`Flat 5, Park Street`

这个Python:

import csv

with open('14144315.csv', 'rb') as csvfile:
    rowreader = csv.reader(csvfile, delimiter=',', quotechar='`')
    for row in rowreader:
        print row

您将看到此输出:

['1', 'Flat 5, Park Street']

这将使用逗号分隔值,但引号为引号的引号

答案 1 :(得分:1)

未正确生成CSV文件。 CSV文件应具有某种形式的文本转义,通常使用双引号:

1,John Doe,"City, State, Country",12345

某些CSV导出会对所有字段执行此操作(从Excel / LibreOffice导出时这是一个选项),但必须转义不明确的字段(例如包含逗号的字段)。

手动修复或正确重新生成CSV。当然,这不能以编程方式修复。

编辑:我刚注意到一些关于“倒置逗号”被用于逃避的事情 - 如果是这样的话,请参阅Jason Sperske的回答,这是现场的。