python3, sqlite3, logging, начинающий питонщик
Есть небольшая проблемка: не знаю, как реализовать передачу параметров в функцию, когда сами параметры находятся в кортеже:
query = "INSERT INTO table VALUES (?,?,?,?,?,?,?,?,?,?,?)"
values = (None, id1, id2, id3, id4, id5, None, id7, None, None, None)
try:
self.cursor.execute(query, values)
except Exception:
logging.exception("Добавление в таблицу: " + query.replace('?','{}').format(values))
В логах должно получиться что-то типа этого:
Добавление в таблицу: INSERT INTO table VALUES (None, id1, id2, id3, id4, id5, None, id7, None, None, None)
Естественно, .format() требует, чтобы параметры ему передавались в виде:
query.replace('?','{}').format(values[0],values[1],....,values[10])
Но это как-то громоздко получается. Нет ли более изящного варианта передачи values?
Пользователь решил продолжить мысль 13 Февраля 2014, 00:19:38:
Пока пришел к такому:
query.replace('(?,?,?,?,?,?,?,?,?,?,?)',str(values))
В принципе, работает и не нагромождает. Прошу прощения за беспокойство
Пользователь решил продолжить мысль 13 Февраля 2014, 00:25:19:
Но сразу возникает проблема:
query = "UPDATE table SET
id1 = ?,
id2 = ?,
...
id10 = ?
WHERE id_d = ?"
Приведенный выше способ будет так же громоздким. Реквестируруется изящное решение.
