我需要一些帮助,我有一个包含地址字段的 CSV 文件,无论谁将数据输入原始数据库,都使用逗号分隔地址的不同部分 - 例如:
柏街5号室
当我尝试使用 CSV 文件时,它会将这个条目视为两个单独的字段,而实际上它是一个字段。我使用 Python 将逗号从逗号之间的位置去掉,因为很容易将它们与实际应该存在的逗号区分开来,但是这个问题让我很难过。
任何帮助将不胜感激。
谢谢。
您可以使用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']
这将使用逗号分隔值,但使用引号括起来的逗号
CSV 文件未正确生成。CSV 文件应该有某种形式的文本转义,通常使用双引号:
1,John Doe,"City, State, Country",12345
某些 CSV 导出对所有字段执行此操作(这是从 Excel/LibreOffice 导出时的一个选项),但必须转义不明确的字段(例如包含逗号的字段)。
手动修复此问题或正确重新生成 CSV。当然,这不能以编程方式修复。
编辑:我刚刚注意到一些关于“反逗号”被用于转义的东西——如果是这种情况,请参阅 Jason Sperske 的回答,这是正确的。