2016-11-15 70 views
0

我想写一些Python代码调用SQL查询的方式,将允许SQL查询保持格式化,因为我想,但Python(我使用蜘蛛GUI)到达行尾并认识到该字符串不会结束。作为Python中的一个变量存储SQL查询

比方说,在表database.table我的数据是这样的:

ID Date Amount 
1 2016-10-01 $3.00 
1 2016-10-05 $4.99 
1 2016-10-12 $1.29 
2 2016-08-12 $50.13 
2 2016-09-11 $27.89 
2 2016-10-08 $31.13 
3 2016-10-04 $4.18 
3 2016-10-10 $43.99 
3 2016-10-20 $62.11 

如果我写了多行代码,并试图将其传递到Python中的一个变量,我碰到一个EOF错误。

Date1 = '2016-10-01' 
Date2 = '2016-10-10' 

TD_Code_Snipit = str("select 
ID, 
sum(Amount) as Amount 
from database.tablename 
group by ID 
where Date >=" 
+Date1+ 
str(" and Date < ") 
+Date2+ 
str(";") 

这使得可读性在我的代码(真正的查询我想提出的是约80行,以便把它放在一个代码行将使相当困难作出调整的飞行。

这是解决这个问题的本质错误的方式或者是有没有蜘蛛是使得它不换行适当地导致错误的设置?

+2

这可以帮助您: http://stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string – user2693928

回答

1

我觉得这是你所需要的。对于多你需要'''和变量您可以使用{}占位符。

Date1 = '2016-10-01' 
Date2 = '2016-10-10' 

TD_Code_Snipit = '''select 
ID, 
sum(Amount) as Amount 
from database.tablename 
group by ID 
where Date >= {} 
and Date < {} 
;'''.format(Date1, Date2)