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