Ho giocato in giro con sqlite3, e mi appare un sqlite3.OperationalError: nei pressi di "dolce": errore di sintassi per questa linea del mio codice query_cursor.execute("INSERT INTO mcdonalds_menu VALUES(%d, %s, %f, %s, %d)" % (ids[num],names[num], price[num], descriptions[num], calories[num]))
Quando ho messo nei valori in 3 query separate il codice sembra funzionare, ma sto cercando di mantenere il mio codice più ASCIUTTO utilizzando un ciclo for. Il codice fino a questo momento:stringa di formattazione una query SQL in sqlite3
import sqlite3
filename = sqlite3.connect("McDonalds_Menu.db")
query_cursor = filename.cursor()
def create_table():
query_cursor.execute("CREATE TABLE mcdonalds_menu (id INTEGER, name VARCHAR(20), price DECIMAL(3, 2), description TEXT, calories INTEGER)")
ids = range(1,4)
names = ["McFlurry", "Fillet-o-Fish", "McCafe"]
price = 1.50, 2.25, 0.99
descriptions = ["Delicious sweet icecream", "Best fish in the sea", "Freshly brewed Colombian coffee"]
calories = 220, 450, 75
def data_entry():
for num in xrange(3):
query_cursor.execute("INSERT INTO mcdonalds_menu VALUES(%d, %s, %f, %s, %d)" % (ids[num], names[num], price[num], descriptions[num], calories[num]))
filename.commit()
if __name__ == "__main__":
create_table()
data_entry()
È possibile eseguire il formato stringa di una query sql utilizzando un ciclo?
Grazie, ha risolto il mio problema. –
Prego. Felice che abbia funzionato! – Grokify