python3csv导入更改for循环中的字符串

2024-04-24 20:46:42 发布

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

我只是想从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)

我试过很多组合,但这是唯一一个我已经设法运行,但它没有任何作用。你知道吗


Tags: csvinforreadtableitemeditreplace
2条回答

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

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"'。你知道吗

上面的正则表达式查找以双引号开头或结尾的任何字符串,并用空字符串替换它。从而给你想要的。你知道吗

相关问题 更多 >