Я строю строку запроса.Python TypeError при построении строки запроса
query = "SELECT seqid, date, name, steamid, team, text, type, '%s' as triggerword, '%s' as weight FROM chatlogs WHERE date > '%s' AND text LIKE '%%%s%%' ORDER BY DATE" % (word, weight, self.setting['LAST_RUN_TIME'], word)
Если напечатать строку, она возвращает правильно:
SELECT seqid, date, name, steamid, team, text, type, 'hunting_term' as triggerword, '0.01' as weight FROM chatlogs WHERE date > '2012-04-18 23:47:58.439124' AND text LIKE '%hunting_term%' ORDER BY DATE
Тем не менее, после этого терпеть неудачу с исключением TypeError: TypeError: не хватает аргументов для строки формата
Полный код:
import database
mysqldb = database.Connection('localhost','mydb',user='myuser',password='mypass')
word = 'hunting_term'
weight = 0.01
setting = dict({'LAST_RUN_TIME':'2012-04-18 23:47:58.439124'})
query = "SELECT seqid, date, name, steamid, team, text, type, '%s' as triggerword, '%s' as weight FROM chatlogs WHERE date > '%s' AND text LIKE '%%%s%%' ORDER BY DATE" % (word, weight, setting['LAST_RUN_TIME'], word)
print query
for message in mysqldb.query(query): # This is the line it throws the exception on
print "A row"
база данных от tornado пакет
Что произойдет, если вы измените '«%%% сек %%»' для ' '%%%%% сек %%%%' '? –