在花括号中添加单引号 - Python

时间:2018-06-07 21:23:46

标签: python sql string

当我运行以下内容时:

table = cfg_pre + '_' + cfg_tbl
check_data = 'SELECT COUNT(*) FROM X WHERE TABLE_NM = {}'.format(table)

我得到以下内容:

SELECT COUNT(*) FROM X WHERE TABLE_NM = ABC_123

我需要的是:

SELECT COUNT(*) FROM X WHERE TABLE_NM = 'ABC_123'

否则SQL不会执行。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

使用双重语音标记代替单个语音标记:

"SELECT COUNT(*) FROM X WHERE TABLE_NM = '{}'".format(table)

这并不完全相关(更多的是精确而非必要),但如果你使用的是Python3.6,你还可以使用f-strings(但你仍需要双重语音标记)。

答案 1 :(得分:1)

如果您使用的是Python 3.6,则f-strings是一种f-un解决方案。最终,您需要使用双引号括起单引号。

table = f'{cfg_pre}_{cfg_tbl}'
check_data = f"SELECT COUNT(*) FROM X WHERE TABLE_NM = '{table}'"

答案 2 :(得分:1)

虽然如果使用变量创建查询,但SQL注入是一个问题,解决方法是转义字符或更改引号。

table = cfg_pre + '_' + cfg_tbl
check_data = "SELECT COUNT(*) FROM X WHERE TABLE_NM = '{}'".format(table)

或者

table = cfg_pre + '_' + cfg_tbl
check_data = 'SELECT COUNT(*) FROM X WHERE TABLE_NM = \'{}\''.format(table)