我应该如何关闭Python中的多行变量/注释?

Dav*_*ron 0 python

我收到此错误:

  File "/DateDbLoop.py", line 33  
    d.Id""" % (str(day), str(2840))"  
    ^  
SyntaxError: EOL while scanning single-quoted string  
Run Code Online (Sandbox Code Playgroud)

这是脚本.有4个双引号可以打开这个,但我不确定如何正确关闭它?

跟进问题:

这个%(str(day),str(2840))是否需要同时进入sql变量和os.system()调用?

#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:

    print "Running query for \"" + str(day) + "\""

    sql=""""SELECT
        d.Date,  
        SUM(d.Revenue),  
        FROM Table d  
        WHERE d.Date = '%s'  
        AND d.Id = %s  
        GROUP BY d.Date  
        """ % (str(day), str(2840))"

    os.system('mysql -h -sN -u  -p -e %s > FileName-%s.txt db' % (sql, str(day)))
    day += one_day
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 5

你的sql = line有4个双引号,而不是3.同时删除%-substitution值后的单引号.

#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:
    print "Running query for \"" + str(day) + "\""

    sql="""SELECT
    d.Date,  
    SUM(d.Revenue)
    FROM Table d  
    WHERE d.Date = '%s'  
    AND d.Id = %s  
    GROUP BY d.Date  
    """ % (str(day), str(2840))

    os.system('mysql -h -sN -u  -p -e "%s" > FileName-%s.txt db' % (sql, str(day)))
    day += one_day
Run Code Online (Sandbox Code Playgroud)

多行字符串值是在Python中使用双引号的成对三元组完成的,并且不嵌套在常规双引号内.