Converting tuples to dictionaries?

Mart van de Wege mvdwege.usenet at
Thu Sep 27 10:23:26 CEST 2001

In <ulmj1d6mg.fsf at>, David Bolen wrote:

> "Mart van de Wege" <mvdwege.usenet at> writes:
>> Hmmm. Remember I started this thread with asking how to get my SQL query
>> results into dictionaries? I found a few methods called dictfetch* in psycopg
>> (the DB module for Postgresql). I was just wondering on how to use those, but
>> I can't find them in the docs.
> I don't use psycopg, but if I recall your original post you also mentioned
> just writing the conversion loop yourself, and I'd consider that a very viable
> solution.
> While there are some other modules out there that wrap SQL queries into higher
> level objects that provide dictionary and sequence like access (Greg Stein's
> for example), it's pretty straight forward (and by no means "wrong")
> to just handle it yourself.
> For example, here's a small function I use that takes a supplied DB-API
> complaint cursor, executes a fetchall() operation on it, and then returns a
> list of dictionaries for each retrieved row, where the dictionary on each row
> can be indexed by field name:
>     def QueryToDictList(cursor):
> 	"""QueryToDictList(cursor)
> 	Execute query on the supplied cursor and return the result as a
>         list of dictionaries, using the cursor description as the keys in each
>         dict"""
> 	result = []
> 	rows = cursor.fetchall()
> 	for currow in rows:
> 	    rowdict = {}
> 	    for curcol in range(0,len(cursor.description)):
> 		rowdict[cursor.description[curcol][0]] = currow[curcol]
> 	    result.append(rowdict)
> 	return result


That was what I had in mind. Thanks for validating my ideas, and thanks for the
code, that makes everything a lot clearer. I'll go building my utility routines
now, my friends will like that. I'm not very good at keeping a paper
administration, so having some programming skills I'd like my computer to do
the hard work, and I won't mess up my campaign by forgetting mundane details.

Thanks again for the help,


Requiem aeternam dona eis, Domine, et lux perpetua luceat eis.
Requiescant in pace.

More information about the Python-list mailing list