python字符串格式中自动添加的反斜杠,pycharm

python字符串格式中自动添加的反斜杠,pycharm,pycharm,string-formatting,python-3.5,Pycharm,String Formatting,Python 3.5,当格式化字符串时,我有一种wierd行为,如: """select username from users, price where pricing_id ='{r}' and price.REQUESTER=users.ID;""".format(r=pr) 这给了我: 'select username from users, price where pricing_id =\\'ID123\\' and price.REQUEST

当格式化字符串时,我有一种wierd行为,如:

"""select username from users, price where pricing_id ='{r}' and price.REQUESTER=users.ID;""".format(r=pr)
这给了我:

'select username from users, price where pricing_id =\\'ID123\\' and price.REQUESTER=users.ID;'
记下每个引号前不需要的转义。在Python控制台中执行相同的操作会得到正确的结果,但在(或评估)Pycharm中运行会自动添加反斜杠。有人遇到过类似的事情吗?这是py3.5环境

编辑/
我不清楚当你说“running”时,你到底在哪里看到了意外的输出,因为你没有给出关于字符串如何传送到终端的提示。你是说调试器是这样显示的吗

但一般来说,我总是看到PyCharm通过调用对象的
\uuu repr\uuu()
方法“做正确的事情”,按照惯例,该方法在合理可能的情况下返回一个字符串,该字符串可以被计算以实例化相同的对象。因此,从这个意义上讲,转义字符串是有效的

Python的
str
类型很简洁,因为它更喜欢用单引号引用值,但如果值包含单引号,则会使用双引号。从记忆中,我想不起来它是否变得更加奇特,比如说,如果两者都存在,就使用三重引号


因此,我怀疑您的“格式化字符串”可能不是简单的
str
(因为它只有单引号)。
type(FOO)
返回什么,其中
FOO
是您分配给它的值?

这是一个字符串,这里毫无疑问。然而,这并不重要,因为我也尝试了数字,结果是一样的。当我说‘running’时,我指的是run,你启动了一个py模块。首先,它在与数据库通信时生成了错误“意外字符”,所以我进行了调查,发现引号用反斜杠转义,这显然是错误的。我希望我的SQL语句以“field=\\'string\u value'”而不是“field=\\'string\u value\\'”的形式传递到数据库。您没有回答我的任何一个问题。显然,程序可以以无数种方式向终端输出信息
print()
恰好是一种方式,但我只能猜测字符串是如何打印的。PyCharm也可以输出值,但运行本身不会这样做,除非您的程序这么说。创建模拟
str
(例如SqlQueryString)的对象类型很简单,但它的行为可能会有所不同,并且很容易解释您所看到的内容,但我从未见过,尽管多年来每天都在使用PyCharm。图片比1000字更好,这非常有帮助。我可以在这里用最新的EAP版本复制它。在我看来很明显是一只虫子--这只事实上:是的,它看起来像这只。。我已经联系JetBrains顺便说一句,我希望这将得到纠正