By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,592 Members | 1,486 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,592 IT Pros & Developers. It's quick & easy.

[newbie] Right way to access item in array?

P: n/a
Hello

I'd like to know what the right way is to access an item in a row as
returned by a database:

=====
import apsw

connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()

rows=cursor.execute("SELECT isbn,price FROM books WHERE price IS
NULL")
for row in rows:

#Is this right?
for isbn in row:

if isbn:
print "Found price = " + price

connection.close(True)
=====

Thank you.
Oct 28 '08 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Gilles Ganault wrote:
Hello

I'd like to know what the right way is to access an item in a row as
returned by a database:

=====
import apsw

connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()

rows=cursor.execute("SELECT isbn,price FROM books WHERE price IS
NULL")
for row in rows:

#Is this right?
for isbn in row:
No. This will iterate though all columns, not just the isbn.

You can use tuple-unpacking in such cases:

for row in rows:
isbn, price = row
...
Diez
Oct 28 '08 #2

P: n/a
Diez B. Roggisch wrote:
Gilles Ganault wrote:
>Hello

I'd like to know what the right way is to access an item in a row as
returned by a database:

=====
import apsw

connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()

rows=cursor.execute("SELECT isbn,price FROM books WHERE price IS
NULL")
for row in rows:

#Is this right?
for isbn in row:

No. This will iterate though all columns, not just the isbn.

You can use tuple-unpacking in such cases:

for row in rows:
isbn, price = row
...
You can do it even in one step with APSW (and pysqlite, and others):

for isbn, price in cur.execute("select isbn, price ..."):
....

-- Gerhard

Oct 28 '08 #3

P: n/a
Gilles Ganault wrote:
Hello

I'd like to know what the right way is to access an item in a row as
returned by a database:

=====
import apsw

connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()

rows=cursor.execute("SELECT isbn,price FROM books WHERE price IS
NULL")
If you are dealing with a DB API-compliant module then the return value
from the cursor's execute method is undefined, and you need to call one
of the "fetch" methods to extract the retrieved data.

So you would want something like

cursor.execute("SELECT isbn,price FROM books WHERE price IS NULL")
rows = cursor.fetchall()
for isbn, price in rows:
print isbn, ":", price

Once you get that working you can do your own computations with isbn and
price. Note, however, that the specific query you use guarantees that
the value of "proce" will be None, since you only retrieve the rows
where price is NULL!
for row in rows:

#Is this right?
for isbn in row:

if isbn:
print "Found price = " + price

connection.close(True)
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

Oct 28 '08 #4

P: n/a
On Tue, 28 Oct 2008 12:12:26 +0100, Gerhard Häring <gh@ghaering.de>
wrote:
>You can do it even in one step with APSW (and pysqlite, and others):

for isbn, price in cur.execute("select isbn, price ..."):
Thanks much guys. For those interested, here's some working code:

======
import apsw

connection=apsw.Connection("mybooks.sqlite")
cursor=connection.cursor()

for id, isbn in list(cursor.execute("SELECT id,isbn FROM books WHERE
price IS NULL")):

print isbn

connection.close(True)
======

HTH,
Oct 28 '08 #5

P: n/a
On Tue, 28 Oct 2008 09:56:11 -0400, Steve Holden <st***@holdenweb.com>
wrote:
>If you are dealing with a DB API-compliant module then the return value
from the cursor's execute method is undefined, and you need to call one
of the "fetch" methods to extract the retrieved data.
Thanks for pointing it out. I read that calling list() on the dataset
is the way to go with this module:

for id, isbn in list(cursor.execute("SELECT id,isbn FROM books WHERE
price IS NULL")):
Oct 28 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.