Python处理字符串时无法使用replace方法移除单引号的问题
问题原因
- 遍历赋值逻辑错误:Python遍历列表时拿到的
line是临时变量,字符串属于不可变类型,执行line = line.replace("'","")仅会修改临时变量的指向,不会改动原batch列表内的元素。 - 目标字符不存在:你看到的单引号是Python展示字符串类型的语法标记,不属于字符串本身的内容。你可以执行
print(batch[0])验证,输出结果不会带有外层的单引号,你想要移除的目标本身就不存在。
解决办法
如果确认字符串内容里确实包含单引号(你给出的示例中没有),需要修改原列表可选择以下两种方式:
- 按索引遍历修改原列表:
for i in range(len(batch)): batch[i] = batch[i].replace("'", "")
- 用列表推导式生成新列表:
batch = [line.replace("'", "") for line in batch]
如果你实际需求是把这些字符串解析为Python字典对象,直接调用JSON解析工具即可,不需要做任何字符替换:
import json parsed_batch = [json.loads(item) for item in batch]
内容的提问来源于stack exchange,提问作者soulwreckedyouth
相关产品推荐
相关产品推荐

