【问题标题】:How to replace ' with \' in python? [duplicate]如何在python中用\'替换'? [复制]
【发布时间】:2015-04-28 17:12:51
【问题描述】:

我想在单词"O'Fallon" 中将"'" 替换为"\'"。 但是当我使用以下代码时:

City="O'Fallon"
City.replace("'","\'")

我得到"O'Fallon" 作为输出,当使用此代码时:

City="O'Fallon"
City.replace("'","\\'")

我得到"O\\'Fallon" 作为输出。你能帮我解决这个问题吗?

【问题讨论】:

  • 双斜线是正常行为。试试print City.replace("'", "\\'")
  • 我认为您正在寻找类似 @​​987654329@ 或 pipes.quote(City)(或 Python >= 3.3 上的 shlex.quote())之类的东西,具体取决于您想要为什么环境转义字符串。跨度>
  • @MartijnPieters 显然,这就是 OP 认为他们的第二次尝试不起作用的原因。但我的观点是:如果他们需要转义单引号,他们可能需要转义将由特定解析器解释的字符串。也许是 Python,也许是一个 shell,谁知道呢。所以嘿应该使用一个函数来正确转义目标环境中具有特殊含义的每个字符,而不仅仅是替换单引号。
  • @LukasGraf:对,我明白你的意思。我在下面发表了类似的评论,感觉到他们在某处的 SQL 查询中使用了它。此时您会要求数据库驱动程序进行转义..

标签: python replace character


【解决方案1】:

这只是控制台中显示的表示。

如果你print它,你会发现一切都很好。

【讨论】:

  • 我不想打印它,我想将它添加为查询的一部分。
  • 没关系。没关系。
  • @user2079550:print 显示该值仅包含一个反斜杠,而不是两个。另一种查看方式是使用result[1:3], len(result[1:3]),它将产生("\\'", 2)。您可以将其用作查询的一部分。
  • @user2079550:但是,如果这是 SQL 查询 的一部分,则不要尝试自己转义这些值。将其留给数据库驱动程序,使用 SQL 参数,而不是字符串连接或插值。
  • @MartijnPieters,感谢您的有用评论
猜你喜欢
  • 2020-11-26
  • 2015-09-14
  • 1970-01-01
  • 2018-12-02
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
相关资源
最近更新 更多