python3-csv导入-在for循环中更改字符串

python3-csv导入-在for循环中更改字符串,python,csv,python-3.4,Python,Csv,Python 3.4,我只是想从csv导入中删除一些“” 样本行 ['"fai"', '""', '""', '"190194"',] ['"boo"', '""',] table = read_csv(FN) for row in table: print (row) for item in row: edit = item.replace('""','') item.replace(item,edit) 我尝试了许多组合,但这是我唯一成功运行的组合,但它没

我只是想从csv导入中删除一些“”

样本行

['"fai"', '""', '""', '"190194"',]
['"boo"', '""',]




table = read_csv(FN)
for row in table:
    print (row)
    for item in row:
        edit = item.replace('""','')
        item.replace(item,edit)

我尝试了许多组合,但这是我唯一成功运行的组合,但它没有任何作用。

我会使用列表理解做一些事情

def dq_strip(string):
    return string.replace('""','')

table = [map(dq_strip, row) for row in table]

如果@MikeRixWolfe对您的意图是正确的,您可以用一个双引号替换两个双引号

我会使用列表理解做一些事情

def dq_strip(string):
    return string.replace('""','')

table = [map(dq_strip, row) for row in table]
如果@MikeRixWolfe对您的意图是正确的,您可以用一个双引号替换两个双引号

使用regex是一种方法:

>>> import re
>>> data = [['"fai"', '""', '""', '"190194"',], ['"boo"', '""',]]
>>> unquoted_data = [[re.sub(r'^"|"$', '', s) for s in x] for x in data]
>>> unquoted_data
[['fai', '', '', '190194'], ['boo', '']]
您的原始代码段只查找两个双引号同时出现的情况,并将其替换为两个单引号。虽然它适用于像
“”“”
这样的数据,但它不适用于
“fai”

上面的正则表达式查找以双引号开头或结尾的任何字符串,并将其替换为空字符串。因此,给出您想要的。

使用正则表达式是实现这一点的一种方法:

>>> import re
>>> data = [['"fai"', '""', '""', '"190194"',], ['"boo"', '""',]]
>>> unquoted_data = [[re.sub(r'^"|"$', '', s) for s in x] for x in data]
>>> unquoted_data
[['fai', '', '', '190194'], ['boo', '']]
您的原始代码段只查找两个双引号同时出现的情况,并将其替换为两个单引号。虽然它适用于像
“”“”
这样的数据,但它不适用于
“fai”


上面的正则表达式查找以双引号开头或结尾的任何字符串,并将其替换为空字符串。这样你就可以得到你想要的。

去看看这是否有效,但仍然想知道我的原始代码为什么是错误的,
item.replace(item,edit)
返回修改过的项目的新副本,并且从不替换列表中的实际条目。好的,这正是我想要的,但我不明白我的其他代码为什么是错误的。我绝对不会考虑这样的事情。以前从未使用过map,现在必须尝试并了解它的功能。
map(func,list)
[func(a)表示列表中的某个对象]
@Kuzen,这能回答您的问题吗?要看看这是否有效,但仍想知道我的原始代码错误的原因,
item.replace(item,edit)
返回修改项目的新副本,并且从不替换列表中的实际条目。好的,这正是我希望它的工作方式,但我同样不明白我的其他代码为什么是错误的。我绝对不会考虑这样的事情。以前从未使用过map,必须尝试并了解它的功能。
map(func,list)
[func(a)表示列表中的对象]
@Kuzen相同,这能回答您的问题吗?很感谢这可能会起作用,但我更喜欢其他解决方案。我已经够头疼的了,但我不想去想regex:P,我会把这个留作参考,我很感激这可能会奏效,但我更喜欢另一个解决方案。我的头已经够疼了,但又不想去想regex:P我会把这个留作参考