在python中的字符串周围强制使用三引号[关闭]
Posted
技术标签:
【中文标题】在python中的字符串周围强制使用三引号[关闭]【英文标题】:enforce triple quotes around strings in python [closed] 【发布时间】:2013-03-14 07:45:18 【问题描述】:我有一个 mysql 表,它存储一些 sql 查询。
架构是这样的:
CREATE TABLE `queries` (`qry_id` int(11) NOT NULL AUTO_INCREMENT,
`qry_text` varchar(2000) COLLATE utf8_unicode_ci NOT NULL,
`result_table` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`last_run` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`period` int(11) DEFAULT NULL,
`error` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`qry_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
例如,一个qry文本是SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s'
在 python 中,我从 sql 表中提取了一个名为 qry 的 str。
qry = "SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s' "
我想要的是:
qry = """SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s' """ % (var1, var2)
如何人为地在 qry 周围添加三引号并将 % (var1, var2) 附加到它。我需要将 qry(以我指定的格式)传递给 API 以运行。谢谢!
【问题讨论】:
你知道""
和""""""
完全一样
三重引号只是形成字符串的语法。它们不是最终生成的字符串的一部分。
我不明白这个问题。 sql表中到底是什么?它是否包含查询:SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s'
?一个python代码片段:qry = "SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s' "
?
另外,清理您的输入。以免我们忘记小鲍比droptables。 xkcd.com/327
您将'qry = "SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s' "'
存储在您的数据库中。 o_O(@JakobBowyer 这是 Bobby Tables ......)
【参考方案1】:
我不明白你的问题:
def get_dangerous_query():
# do some database access
# For a demo, just return what we know the table contains
return "SELECT * FROM TABLE WHERE COL1 = '%s' and COL2 = '%s'"
qry = get_dangerous_query() % (var1, var2)
"""
与 "
仅对字符串文字有影响。如果字符串来自外部来源,则引号完全没有意义。
【讨论】:
非常感谢您的帮助,埃里克。问题解决了。无需使用""" @tonystarkix:如果这解决了问题,记得点击勾以上是关于在python中的字符串周围强制使用三引号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章