Hi CrackPod!CrackPod hat geschrieben:TypeError: tuple indices must be integers
Damit du die Rückgabe wie ein Dictionary verwenden kannst, musst du, vor dem Erstellen des Cursors, eine spezielle RowFactory zuweisen.
Code: Alles auswählen
self.conn.row_factory = sqlite3.Row
Code: Alles auswählen
[...]
#----------------------------------------------------------------------
def __init__(self, dbfilename = DBFILENAME):
"""
:param dbfilename: Name und Pfad zur Datenbankdatei. Existiert
sie nicht, wird sie automatisch erstellt.
"""
# Verbindung herstellen
self.conn = sqlite3.connect(dbfilename)
# Abfrageergebnisse wie Dictionarys verwenden lassen.
# Diese Zeile muss **vor** dem Erstellen des Cursors stehen.
self.conn.row_factory = sqlite3.Row
# Cursor erstellen
self.cur = self.conn.cursor()
[...]
def getall (self):
'''Rückgabe von allen Kontakten des Telefonbuchs'''
sql = '''SELECT
id,
vorname,
zuname,
[...]
FROM
addresses'''
self.cur.execute(sql)
return self.cur.fetchall()
adr = Adress('./daten/address.sqldb')
adr.install()
adr.add('Max','Maximilian','Musterman','Herr','Musterstr 12',
'1234865','Musterstadt','Deutschland','004912326548', None,'01701234586')
addresses = adr.getall()
for address in addresses:
print "vorname:", address["vorname"]
print "zuname:", address["zuname"]
print
Gerold