"attach \"%s\" as toMerge" % "b.db"
Вы должны использовать '
вместо "
, чтобы вам не пришлось бежать.
Вы использовали старые строки форматирования, которые устарели.
'attach "{0}" as toMerge'.format("b.db")
При этом используется функция строки нового формата из более новых версий Python, которую следует использовать вместо старой, если это возможно.
"attach ? as toMerge"; cursor.execute(cmd, ('b.db', ))
Эта функция полностью исключает форматирование строки и использует вместо этого функцию SQLite, так что этоправильный способ сделать это.
Большое преимущество: нет риска внедрения SQL