关于字符串:在Python中将SQL查询存储为单个变量

Storing a sql query as a single variable in Python

本问题已经有最佳答案,请猛点这里访问。

我正在尝试编写一些调用SQL查询的python代码,这样可以让SQL查询保持我想要的格式,但是python(我使用的是spider gui)到达行的末尾,并识别出字符串没有结束。

假设我的数据在表数据库中。表如下:

1
2
3
4
5
6
7
8
9
10
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错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
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行,所以将它放在一行代码上会使它很难进行即时调整。

这是一种处理此问题的固有错误方法,还是Spider中的设置使其无法适当地换行,从而导致错误?


我想这就是你需要的。对于多行,您需要''',对于变量,您可以使用{}占位符。

1
2
3
4
5
6
7
8
9
10
11
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)