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

Python-字符串中的逗号导致strip出现问题,python,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”,“联锁错误

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

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”,“联锁错误
,而不是
RCM,联锁错误

('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')]

问题是因为
strip
只会从字符串的末尾移除

使用
regex
替换


看起来你是在寻找,而不是

尝试使用
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]
示例
以以下值结束:

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

你单纯的去除引号的方法会带来麻烦。一定要测试你在某个东西上的任何代码,其中包含实际的引号。它完全按照你告诉它的做。去除只从字符串的末尾删除,可能你想要str.replace。
““RCM”,“Interlock error”“
这是一个字符串,不是两个。字符串由
分隔,只有第一个和最后一个
位于字符串的开头/结尾。因此,它被删除-另一个在其中-并且没有被
strip()
触及。投票关闭,strip完全按照预期工作,逗号不会使其机制失效。检查,
string.strip(s[,chars])
返回删除了前导字符和尾随字符的字符串副本。请尝试使用
.replace(“”,“”)
而不是使用
.strip()
简易解决方案!谢谢你的帮助!
[('7-30-17', '0x34', 'Upload Complete'), ('7-31-17', '0x35', 'RCM,Interlock error')]