Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Python字符串变量添加到Python中SQL字符串变量的一部分?_Python_R_Sqlalchemy_Pycharm_Amazon Redshift - Fatal编程技术网

如何将Python字符串变量添加到Python中SQL字符串变量的一部分?

如何将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

我正在使用Python和SQLAlchemy执行红移SQL查询。我将要执行的SQL定义为python字符串,我想创建一些附加的python字符串变量,这些变量将成为SQL字符串的一部分。例如,在下面的示例中,SQL查询中的表名可以由python变量“table_string”加上表名本身的其余部分构建。在本例中,生成的表名为“test_table_name”

我在R中也做过类似的事情,我想知道python的等价物是什么。以下是R示例:

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文件的顶部有一个要更改的变量列表。还没到那个程度,但这肯定会有帮助。