如何确保多行字符串中的双引号

时间:2016-06-23 13:13:58

标签: python wtforms

我编写了一个SQL查询,它使用从WTForms传入的数据作为参数。 如何确保变量的双引号?

q = """
select * from table
where dt_date >= %(date)s""" % {'date':date}

现在它显示为

select * from table
where dt_date >= 23-06-2016

然后抛出错误。如何使它成为:

select * from table
where dt_date >= "23-06-2016"

2 个答案:

答案 0 :(得分:1)

尝试在多线程中转义双引号。

>>> q = """
... select * from table
... where dt_date >= \"%(date)s\""""%{'date':date}
>>> q
'\nselect * from table\nwhere dt_date >= "23-06-2016"'
>>> print q

select * from table
where dt_date >= "23-06-2016"

答案 1 :(得分:1)

Python不会阻止您在多行字符串中使用双引号。只有当你把它们放在一起时才会遇到麻烦("""")。您可以将双引号转义为\",也可以只在它们与三引号(" """)之间留一个空格。

<强>逃逸:

q = """
select * from table
where dt_date >= \"%(date)s\""""%{'date':date}
>>> print q

select * from table
where dt_date >= "asdf"

三重引号前的空格:

q = """
select * from table
where dt_date >= "%(date)s" """%{'date':date}
>>> print q

select * from table
where dt_date >= "asdf"