我编写了一个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"
答案 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"