在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中的字符串周围强制使用三引号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

DAO.Recordset MySQL 后端在字符串周围强制使用单引号

在字符串周围用引号编写csv(Python)

Python:在字符串周围插入双引号或单引号

强制 repr() 使用单引号

你应该在python中的类型注释周围加上引号吗

Python中的单引号双引号三引号