如何使用Python用双引号封装字符串

如何使用Python用双引号封装字符串,python,Python,我正在使用python处理D.B.查询,表名应该用引号括起来,以帮助可能的转义。有些时候用户用引号提供表名,有些时候不使用引号 想知道如何确保tableName始终是带引号的字符串 my_string = "select * from " + tableName print(my_string) 我希望输出为=>select*fromtable Value两个选项,您可以将整个内容放在单引号中,也可以对双引号进行转义 选择1 my_string = 'select * from "' + ta

我正在使用python处理D.B.查询,表名应该用引号括起来,以帮助可能的转义。有些时候用户用引号提供表名,有些时候不使用引号

想知道如何确保tableName始终是带引号的字符串

my_string = "select * from " + tableName
print(my_string)

我希望输出为=>select*fromtable Value

两个选项,您可以将整个内容放在单引号中,也可以对双引号进行转义

选择1

my_string = 'select * from "' + tableName + '"'
选择2

my_string = "select * from \"" + tableName + "\""

另一方面,对于SQL查询,您应该使用预处理语句来避免SQL注入。

尝试创建带有单引号的字符串并添加双引号,如下所示:

mystring = 'select * from "' + tableName + '"'
或者,您可以在字符串中转义双引号:

mystring = "select * from \"" + tableName + "\""
您可以找到有关可以使用的字符串文字的更多信息


对于您的问题,您应该手动检查myTable是否由以下行引用

len(myTable) > 1 and '"' == myTable[0] and '"' == myTable[-1]
然后,你可以应用其他人建议的方法

另外,我建议使用docstring格式,因为您可以使用包含许多行的命令

"""CREATE TABLE {};""".format(your_var)
当命令很长时,您可以看到它变得很有用

"""CREATE TABLE {} (
               pubkey varchar,
               title varchar,
               journal varchar,
               year varchar,
               PRIMARY KEY(pubkey));""".format(your_var)
"""CREATE TABLE {} (
               pubkey varchar,
               title varchar,
               journal varchar,
               year varchar,
               PRIMARY KEY(pubkey));""".format(your_var)