On 05/14/2018 10:04 PM, Ian Zimmerman wrote:
> On 2018-05-14 21:12, Adrian Klaver wrote:
>
>> Because you are doing fetchall(). That is going to fetch a list of row
>> tuples. Either iterate over that list or iterate over the cursor:
>>
>> for row in cur_p:
>> print(row)
>>
>> For more info see:
>> http://initd.org/psycopg/docs/cursor.html
>
> Where does that webpage say that I can use the cursor itself for
> iteration? I can't find it there. (OTOH it is clearly documented for
> the sqlite3 library).
Results retrieval methods
"
Note
cursor objects are iterable, so, instead of calling explicitly
fetchone() in a loop, the object itself can be used:
>>> cur.execute("SELECT * FROM test;")
>>> for record in cur:
... print record
"
>
> Until now, with psycopg2 I have done it like this:
>
> cur.execute(stmt)
> results = iter(cur.fetchone, None)
> for r in results:
> ...
>
--
Adrian Klaver
adrian.klaver@aklaver.com