【问题标题】:Python string nesting under stringPython字符串嵌套在字符串下
【发布时间】:2018-08-28 15:16:50
【问题描述】:

当我运行下面的代码行时,我得到以下结果:

>>> a = ''' this " is what \"is 'needed' \" Please " '''
' this " is what "is \'needed\' " Please " '

我希望输出是:

' this " is what "is 'needed' " Please " '

问题是'\' 取代。 任何人都可以提出解决此问题的方法吗?

【问题讨论】:

  • 您正在回显一个字符串对象,因此会显示 repr() 表示。这用于调试输出,可以轻松复制到 Python 脚本中,因为它仍然是有效的字符串文字语法,可以重新创建完全相同的值。
  • 您通常希望使用print() 来写入字符串值本身。您是否有任何理由需要将外部 '....' 引号作为打印值的一部分?
  • 我需要外层的 ' ...' ,整个东西都传给了一个函数,所以也打印不出来
  • 如果你将它传递给一个函数,那么这里没有错,反斜杠不是值的一部分,只是表示的一部分。
  • 对,所以你有一个XY problem。您错误地诊断了问题并询问了有关您的诊断的问题,而不是您试图解决的真正问题。听起来您需要使用 SQL 参数。

标签: python string text


【解决方案1】:

你只需要打印你的字符串:

a = ''' this " is what \"is 'needed' \" Please " '''
print(a)

输出:

this " is what "is 'needed' " Please " 

或者,如果你真的想要外引号:

print("'" + a + "'")

输出:

' this " is what "is 'needed' " Please " '

【讨论】:

  • 如果他们想要那些外部单引号怎么办?
  • 基本不能打印,这个“a”要传入函数
  • 但是你说:"I want the output to be:"(等等)。看起来这不是问题。只需将a 传递给函数即可。
  • 实际上这个例子是一个演示,这个“a”被传递到一个 paramiko 会话中,这是一个传递到 linux 服务器的 sql 查询。查询应该只保留“ where item = 'Y'”,但它即将到来的“ where item = \'Y\'”
猜你喜欢
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 2021-04-12
相关资源
最近更新 更多