字符串中的Python逗号导致strip出现问题

2024-05-15 11:32:04 发布

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

我有字符串作为元组,我正试图从中删除引号。如果字符串中没有逗号,那么它可以工作。但如果有逗号,则引号仍然保留:

example = [('7-30-17','0x34','"Upload Complete"'),('7-31-17','0x35','"RCM","Interlock error"')]

example = [(x,y,(z.strip('"'))) 
    for x,y,z in example] 

结果是引号部分保留在带有逗号的字符串中。第二个元组现在读取RCM","Interlock error,而不是RCM, Interlock error

('7-30-17','0x34','Upload Complete')
('7-31-17','0x35','RCM","Interlock error')

知道我做错了什么吗?谢谢!你知道吗


Tags: 字符串inforexampleerror引号completeupload
3条回答

问题是因为strip只会从字符串的末尾删除。你知道吗

使用regex替换"

import re

example = [('7-30-17','0x34','"Upload Complete"'),('7-31-17','0x35','"RCM","Interlock error"')]

example = [(x,y,(re.sub('"','',z))) 
    for x,y,z in example] 

print(example)
# [('7-30-17', '0x34', 'Upload Complete'), ('7-31-17', '0x35', 'RCM,Interlock error')]

您可以使用列表理解来迭代列表项,也可以使用类似的方法迭代内部元组项

>>> [tuple(s.replace('"','') for s in tup) for tup in example]
[('7-30-17', '0x34', 'Upload Complete'), ('7-31-17', '0x35', 'RCM,Interlock error')]

看起来你在寻找^{}的行为,而不是^{}。你知道吗

尝试使用replace('"', '')而不是strip('"')strip只删除字符串开头和结尾的字符,而replace将处理所有出现的字符。你知道吗

您的示例将更新为如下所示:

example = [('7-30-17','0x34','"Upload Complete"'),('7-31-17','0x35','"RCM","Interlock error"')]

example = [(x,y,(z.replace('"', '')))
    for x,y,z in example]

example以以下值结束:

[('7-30-17', '0x34', 'Upload Complete'), ('7-31-17', '0x35', 'RCM,Interlock error')]

相关问题 更多 >