> 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 -- http://mail.python.org/mailman/listinfo/python-list