getting an empty tuple

N

nephish

Hey there,
i have a simple database query that returns as a tuple the number of
rows that the query selected.
kinda like this

ok, means 21 rows met the criteria of the query. but if there are none
that match,
like i do a

how do i encorporate that into an equation ?
i have tried all kinds of stuff

if x == 0L
if x(0) == None
if x == None

anyway, what shoud i do to test if the result is empty?

thanks
 
P

Peter Decker

how do i encorporate that into an equation ?
i have tried all kinds of stuff

if x == 0L
if x(0) == None
if x == None

anyway, what shoud i do to test if the result is empty?

Just like any other test:

if not x:
 
S

Steven D'Aprano

Hey there,
i have a simple database query that returns as a tuple the number of
rows that the query selected.
kinda like this

21L is not a tuple, it is a long integer.
ok, means 21 rows met the criteria of the query. but if there are none
that match,
like i do a


how do i encorporate that into an equation ?
i have tried all kinds of stuff

And did they work? If they didn't work, tell us the exact error message
you got.

if x == 0L

If x is a long integer, then that will work. Of just "if x == 0:" will
work too.

if x(0) == None

No. That means x is a function, and you are giving it an argument of 0,
and it returns None.
if x == None

You said that your query returns a tuple, but then gave an example where
it returns a long int. None is not a tuple, nor a long int, so testing
either of those things against None will never be true.

Did you try any of these things in the interactive interpreter? Python is
a great language for experimenting, because you can try this yourself:

# run your setup code ...
# and then do some experimenting
cursor.execute('select value from table where autoinc > 99999999')
# or some value that will never happen
x = cursor.fetchall()
print x

What do you get?

anyway, what shoud i do to test if the result is empty?

Long ints are never empty, but they can be zero:

if x == 0:
print "no rows were found"
elif x == 1:
print "1 row was found"
else:
print "%d rows were found" % x

Tuples can be empty:

if len(x) == 0:
print "no rows were found"

or if you prefer:

if x == ():
print "no rows were found"


But the cleanest, most Pythonic way is just to do a truth-test:

if x:
print "something was found"
else:
print "x is empty, false, blank, nothing..."
 
N

nephish

ok, this is what works:
if x == ():

sorry about the bad info. and what i ment to put was
x[0] not x(0)

thanks for the tips
its all good now

shawn
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,262
Messages
2,571,311
Members
47,981
Latest member
satome

Latest Threads

Top