注意:下面的查询没有给出任何输出,所以当我打印查询时,我知道有一个空格,如下所示在output.can任何一个解决这个或给出任何解决方案?
node="some text"
sql=("select * from table where Node='%s.sam'"%node)
print("select * from table where Node='%s.sam'"%node)
cursor.execute(sql)
data=cursor.fetchall()
for dat in data:
print(dat)
输出:
select * from table where Node='some text
.sam'
答案 0 :(得分:1)
正如其他用户已经提到的,您可以使用strip()函数删除前导和尾随空格。如果您只想删除尾部空格,可以使用rspace()函数。
也是一个小问题,与您的问题无关,但与您的示例代码有关。通常,使用格式字符串为SQL查询输入参数是不好的做法,因为如果允许用户输入,它允许进行令人讨厌的SQL注入。您的驱动程序可能应该以安全的方式输入参数。
例如,使用sqlite3驱动程序,我相信您可以执行类似于以下内容的操作
cursor.execute("select * from table where Node = ?", (node,))