[Python] R: Re: MameError
Daniele Varrazzo
piro a develer.com
Ven 12 Nov 2010 12:30:48 CET
On Fri, 12 Nov 2010 12:21:54 +0100 (CET), "girub a inwind.it"
<girub a inwind.it> wrote:
> provando con gli apici mi da sempre errore... un errore diverso:
>
> C:\Python26\test>mysql.py
> Traceback (most recent call last):
> File "C:\Python26\test\mysql.py", line 13, in <module>
> print "%s, %s" % (row['nome'],row['cognome'])
> TypeError: tuple indices must be integers, not str
Non mi risulta si possa accedere al risultato come dizionario: è una
semplice tupla. Dovresti usare row[0], row[1] ecc.
Documentazione: http://mysql-python.sourceforge.net/MySQLdb.html
Puoi trasformare facilmente la tupla in un dizionario con:
row = dict((d[0], x) for d, x in zip(cursor.description, row))
# ora puoi usare row['nome'], row['cognome']
o in una named tuple:
Record = namedtuple('Record', [d[0] for d in cursor.description])
row = Record(*row)
# ora puoi usare row.nome, row.cognome
se MySQLdb rispetta la DBAPI (il che dovrebbe):
http://www.python.org/dev/peps/pep-0249/.
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python