Select as dictionary...
Tim Chase
python.list at tim.thechases.com
Mon Oct 1 10:12:57 EDT 2007
> aia.execute("SELECT id, w from list")
> links=aia.fetchall()
> print links
>
> and result
> [(1, 5), (2,5).......] (2 million result)
>
> I want to see this result directly as a dictionary:
>
> {1: 5, 2: 5 .....}
Because your fortuitously issued a select in that particular
order (key, value), you can simply use:
my_dict = dict(aia.fetchall())
Alternatively, if you don't want to consume double-ish the
memory, you can do something like
my_dict = {}
while True:
rows = aia.fetchmany()
if not rows: break
my_dict.update(dict(rows))
This should at least prevent both a 2-million-item list returned
by fetchall() *and* the 2-million-item dict; leaving you instead
with a footprint of a 2-million-item-dict, plus however many rows
your fetchmany() brings back by default (or you can specify it as
a optional parameter to fetchmany--see your help for fetchmany).
2 million results are a lot, no matter how big each element
is...beware of memory limits.
-tkc
More information about the Python-list
mailing list