Pour accéder aux valeurs des colonnes d'une table avec sqlite3, il faut passer par fetchall(), comme dans cet exemple:
QueryCurs.execute('Select * from Clients WHERE Ville=Fourmies')Values = QueryCurs.fetchall()print Valuesprint type(Values),type(Values[0])
Fetchall retourne alors une liste de "tuples" contenant les valeurs des colonnes de la table. Pour accéder à une valeur particulière il suffit alors de procéder, par exemple, comme suit:
Values[i][j]
avec i,j correspondant au tuple et à la valeur recherchée respectivement. Un exemple simple complet:
import sqlite3CreateDataBase = sqlite3.connect('MyDataBase.db')QueryCurs = CreateDataBase.cursor()def CreateTable():QueryCurs.execute('''CREATE TABLE Clients(id INTEGER PRIMARY KEY, Nom TEXT,Rue TEXT,Ville TEXT, Region TEXT, Note REAL)''')def AddEntry(Nom,Rue,Ville,Region,Note):QueryCurs.execute('''INSERT INTO Clients (Nom,Rue,Ville,Region,Note)VALUES (?,?,?,?,?)''',(Nom,Rue,Ville,Region,Note))CreateTable()AddEntry('Toto','Rue 1','Lille','Nord',105.2)AddEntry('Bill','Rue 2','Fourmies','Nord',105.2)AddEntry('Ben','Rue 3','Lille','Nord',105.2)AddEntry('Paul','Rue 4','Lille','Nord',105.2)CreateDataBase.commit()QueryCurs.execute('SELECT * FROM Clients')for i in QueryCurs:print "\n"for j in i:print jprint 'Get Column Values: 'print 'Test 1'QueryCurs.execute('Select * from Clients WHERE Ville=?',('Fourmies',))Values = QueryCurs.fetchall()print Valuesprint type(Values),type(Values[0])print Values[0][0], Values[0][1], Values[0][2], Values[0][3], Values[0][4]print 'Test 2'QueryCurs.execute('Select * from Clients WHERE Ville=?',('Lille',))Values = QueryCurs.fetchall()print Valuesfor i in range(len(Values)):print Values[i][0], Values[i][1], Values[i][2], Values[i][3], Values[i][4]QueryCurs.close()
qui donne
1TotoRue 1LilleNord105.22BillRue 2FourmiesNord105.23BenRue 3LilleNord105.24PaulRue 4LilleNord105.2Get Column Values:Test 1[(2, u'Bill', u'Rue 2', u'Fourmies', u'Nord', 105.2)]<type 'list'> <type 'tuple'>2 Bill Rue 2 Fourmies NordTest 2[(1, u'Toto', u'Rue 1', u'Lille', u'Nord', 105.2), (3, u'Ben', u'Rue 3', u'Lille', u'Nord', 105.2), (4, u'Paul', u'Rue 4', u'Lille', u'Nord', 105.2)]1 Toto Rue 1 Lille Nord3 Ben Rue 3 Lille Nord4 Paul Rue 4 Lille Nord
Recherches associées
| Liens | Site |
|---|---|
| sqlite3 — DB-API 2.0 interface for SQLite databases | Python Doc |
| Python/sqlite: get column values as a list/tuple from rows where other columns have certain values | stackoverflow |
| How do I select a column by its name? (Python & SQLite3) | stackoverflow |
| Retrieve SQLITE data with python | stackoverflow |
