如何将Python字符串变量添加到Python中SQL字符串变量的一部分?
我正在使用Python和SQLAlchemy执行红移SQL查询。我将要执行的SQL定义为python字符串,我想创建一些附加的python字符串变量,这些变量将成为SQL字符串的一部分。例如,在下面的示例中,SQL查询中的表名可以由python变量“table_string”加上表名本身的其余部分构建。在本例中,生成的表名为“test_table_name” 我在R中也做过类似的事情,我想知道python的等价物是什么。以下是R示例:如何将Python字符串变量添加到Python中SQL字符串变量的一部分?,python,r,sqlalchemy,pycharm,amazon-redshift,Python,R,Sqlalchemy,Pycharm,Amazon Redshift,我正在使用Python和SQLAlchemy执行红移SQL查询。我将要执行的SQL定义为python字符串,我想创建一些附加的python字符串变量,这些变量将成为SQL字符串的一部分。例如,在下面的示例中,SQL查询中的表名可以由python变量“table_string”加上表名本身的其余部分构建。在本例中,生成的表名为“test_table_name” 我在R中也做过类似的事情,我想知道python的等价物是什么。以下是R示例: table_string <- 'test_' dbS
table_string <- 'test_'
dbSendQuery(redshift,paste0("begin;
create table ",table_string,"table_name
(id int not null, name varchar(40), date timestamp);
end;"))
table\u string可以使用.format
方法(请参阅)。在您的情况下,它看起来是这样的:
table_string = 'test_'
create_test_sql_string_python='''
begin;
create table {0}table_name
(id int not null, name varchar(40), date timestamp);
end;
'''.format(table_string)
将{0}
放在字符串中将替换.format()
中的第一个参数,该参数可以有多个参数。可以使用.format
方法(请参阅)。在您的情况下,它看起来是这样的:
table_string = 'test_'
create_test_sql_string_python='''
begin;
create table {0}table_name
(id int not null, name varchar(40), date timestamp);
end;
'''.format(table_string)
将{0}
放在字符串中将替换.format()
中的第一个参数,该参数可能有多个参数。我无法对SQL语句本身进行注释,但您可以使用在此处传递变量
字符串看起来像:
"""
begin;
create table {} (id int not null,
name varchar(40),
date timestamp);
end;
""".format(table_string)
我无法对SQL语句本身进行注释,但您可以使用在此处传递变量
字符串看起来像:
"""
begin;
create table {} (id int not null,
name varchar(40),
date timestamp);
end;
""".format(table_string)
我认为“table\u name”
是一个打字错误。尽管如此,投票表决;从R代码示例和生成的表名应该是“test_table_name”的问题来看,我知道变量table_字符串只是一个前缀,我的意思是代表OP的拼写错误。但对于红移,具体来说,我不能确定。如果您必须使用“table\u name”
来限定您指定的内容,我会感到惊讶,但我可能错了。谢谢你们两位。这很有效。在这种情况下,我需要在SQL变量字符串中使用几个不同的变量Sting。尽量避免修改任何实际的SQL,在运行整个程序之前,在python文件的顶部有一个要更改的变量列表。还没到那个程度,但这肯定会有帮助。我认为“table\u name”
是一个打字错误。尽管如此,投票表决;从R代码示例和生成的表名应该是“test_table_name”的问题来看,我知道变量table_字符串只是一个前缀,我的意思是代表OP的拼写错误。但对于红移,具体来说,我不能确定。如果您必须使用“table\u name”
来限定您指定的内容,我会感到惊讶,但我可能错了。谢谢你们两位。这很有效。在这种情况下,我需要在SQL变量字符串中使用几个不同的变量Sting。尽量避免修改任何实际的SQL,在运行整个程序之前,在python文件的顶部有一个要更改的变量列表。还没到那个程度,但这肯定会有帮助。