ziehen Ich versuche, eine sehr einfache Aufgabe zu erfüllen:Python SQLite3: wollen Zeilen iterativ zu holen, aber Code wird jede zweite Zeile
- eine Tabelle in SQLite erstellen
- Legen Sie mehrere Zeilen
- Abfrage eine einzelne Spalte in der Tabelle und ziehen zurück jede Reihe
Registerkarte Code zu erstellen:
import sqlite3
sqlite_file = '/Users/User/Desktop/DB.sqlite'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
c.execute('''CREATE TABLE ListIDTable(ID numeric, Day numeric, Month
numeric, MonthTxt text, Year numeric, ListID text, Quantity text)''')
values_to_insert = [
(1,16,7,"Jul",2015,"XXXXXXX1","Q2"),
(2,16,7,"Jul",2015,"XXXXXXX2","Q2"),
(3,14,7,"Jul",2015,"XXXXXXX3","Q1"),
(4,14,7,"Jul",2015,"XXXXXXX4","Q1")] #Entries continue similarly
c.executemany("INSERT INTO ListIdTable (ID, Day, Month, MonthTxt,
Year, ListID, Quantity) values (?,?,?,?,?,?,?)", values_to_insert)
conn.commit()
conn.close()
Wenn ich diese Tabelle in SQLite DB Browser anschaue, sieht alles gut aus.
Hier ist mein Code und Abfrage der obigen Tabelle, um zu versuchen:
import sqlite3
sqlite_file = '/Users/User/Desktop/DB.sqlite'
conn = sqlite3.connect(sqlite_file)
conn.row_factory = sqlite3.Row
c = conn.cursor()
for row in c.execute('select * from ListIDTable'):
r = c.fetchone()
ID = r['ID']
print (ID)
ich einen Druck von 1 erhalten sollte, 2, 3, 4. Allerdings bekomme ich nur 2 und 4
Mein Code lädt tatsächlich 100 Einträge in die Tabelle, aber trotzdem, wenn ich abfrage, bekomme ich nur ID-Ausdrucke von geraden Zahlen (dh 2, 4, 6, 8 usw.).
Vielen Dank für weitere Hinweise zur Fehlerbehebung.