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

2024-10-06 15:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

公园街5号公寓

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

如有任何帮助,我们将不胜感激。

谢谢。


Tags: 文件csv数据数据库地址条目区分逗号
2条回答

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

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

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

手动修复或正确重新生成CSV。当然,这不能通过编程来解决。

编辑:我刚刚注意到一些关于“倒逗号”用于转义的东西-如果是这样的话,请参阅Jason Sperske的答案,这是spot on。

可以用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']

这将使用逗号来分隔值,但对于带引号的逗号,则使用倒逗号

相关问题 更多 >