5

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

柏街5号室

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

任何帮助将不胜感激。

谢谢。

4

2 回答 2

3

您可以使用Python 的 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']

这将使用逗号分隔值,但使用引号括起来的逗号

于 2013-01-03T17:54:22.840 回答
1

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

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

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

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

编辑:我刚刚注意到一些关于“反逗号”被用于转义的东西——如果是这种情况,请参阅 Jason Sperske 的回答,这是正确的。

于 2013-01-03T17:53:56.873 回答