测试当前字符是否为字符串中的最后一个字符(Python)

2024-04-24 09:25:30 发布

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

目前正在编写一个python脚本,将csv文件转换为sql文件。生成csv时,空值不会输入到文本文件中。因此,我必须对数据进行解析,如果相邻有逗号(例如:,,),那么我知道需要在两者之间输入一个空值。我在测试记录中的最后一列是否为null时遇到了问题。目前,我寻找逗号,如果我在后面找到另一个,它会被设置为null,但在最后它只是一个逗号,然后字符串结束。你知道吗

我试着在这里四处看看,我发现的大部分都和这个link相似。我所发现的并不是解决当前问题的办法。你知道吗

请看一个小代码段,看看我目前是如何做的(不起作用):

for text in line:
    if(text == ',' and line[indexCurrent+1]==None):
        newLine = line[indexCurrent] + '"NULL"' + line[indexCurrent+1]    

以下是我目前的结果:

从这一行:

2816 ,, "Jeremie Hermiston",, "789-yb-20772",

我明白了:

2816 ,"NULL", "Jeremie Hermiston","NULL", "789-yb-20772",

我要这句话:

2816 ,"NULL", "Jeremie Hermiston","NULL", "789-yb-20772","NULL"

您还可以假设逗号是字符串中的最后一个字符,在最后一个逗号之后没有任何内容(甚至没有空格)。你知道吗


Tags: 文件csv字符串text脚本sqllinenull
1条回答
网友
1楼 · 发布于 2024-04-24 09:25:30

我设法用re模块得到了你要求的结果。这是你的选择吗?你知道吗

为了清楚起见,我们分两个步骤,首先用','替换所有','和',“None”,',然后用',“None”替换终止逗号(',$';$是行尾锚点)

a = '2816 ,, "Jeremie Hermiston",, "789-yb-20772",'
b = re.sub(',,',',"None",',a)
b = re.sub(',$',',"None"',b)

相关问题 更多 >