我只想删除一些""来自csv import。
示例行
['"fai"', '""', '""', '"190194"',]
['"boo"', '""',]
table = read_csv(FN)
for row in table:
print (row)
for item in row:
edit = item.replace('""','')
item.replace(item,edit)
我尝试了很多种组合,但这只是我设法运行的一种,但它什么也没做。
答案 0 :(得分:2)
我会使用列表理解
做一些事情def dq_strip(string):
return string.replace('""','')
table = [map(dq_strip, row) for row in table]
如果@MikeRixWolfe对你的意图是正确的,你可以用一个替换两个双引号。
答案 1 :(得分:2)
使用正则表达式sub()
是一种方法:
>>> 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"'
。
上面的正则表达式查找以双引号开头或结尾的任何字符串,并用空字符串替换它。从而给出你想要的东西。