Olá!
Não se deve utilizar %s, veja que se por exemplo tiver um apóstrofo na string vai falhar quando não deveria, se a variável for numérica, vai falhar também a menos que conversa para string antes, ou seja, qualquer objeto não string ou string com apóstrofo vai te dar dor de cabeça.
[]'s
Junior Polegato
import sqlite3
// CRIA O BANDO DE DADOS - CORRETO
conn = sqlite3.connect('test.db')
// DECLARA A TABELA MAS ONDE ELA É CRIADA ? OU QUANDO ?
sql = "CREATE TABLE Sena(x NUMERIC, y NUMERIC, z NUMERIC)"
// --------------------------------------------------------------
# Para inserir dados no nosso banco de dados usamos
x = 1
while x < 6:
y = 1
while y < 6:
z = 1
while z < 6:
cur = conn.cursor()
// INSERE DADOS NUMA TABELA QUA NÃO EXISTE ?
sql = "INSERT INTO Sena VALUES(x,y,z)"
// OLHA O 'SQL' SENDO REESCRITO ACIMA
// ------------------------------------------------------------------
cur.executable(sql)
z = z + 1
y = y + 1x = x + 1
// NÃO HÁ COLUNA PORQUE NÃO HÁ TABELA
// sqlite3.OperationalError: no such column: ximport sqlite3import sqlite3
conn = sqlite3.connect('test.db')
cur = conn.cursor()sql = "CREATE TABLE IF NOT EXISTS Sena(x NUMERIC, y NUMERIC, z NUMERIC)"cur.execute(sql)
# Para inserir dados no nosso banco de dados usamosx = 1while x < 6: y = 1 while y < 6: z = 1 while z < 6: sql = "INSERT INTO Sena(x,y,z) values(?,?,?)" # ? placeholder cur.execute(sql, (x,y,z)) z = z + 1 y = y + 1 x = x + 1
# A linha seguinte é usada para consolidar os dados na baseconn.commit()conn.close# fim do programa