getting an empty tuple

nephish at xit.net nephish at xit.net
Sun Jul 31 14:43:02 EDT 2005


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


Steven D'Aprano wrote:
> On Sun, 31 Jul 2005 08:40:26 -0700, nephish wrote:
>
> > Hey there,
> > i have a simple database query that returns as a tuple the number of
> > rows that the query selected.
> > kinda like this
> >
> >>>> cursor.execute('select value from table where autoinc > 234')
> >>>> x = cursor.fetchall()
> >>>> print x
> >
> >>>> 21L
>
> 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
> >
> >>>> print x
> >>>> 0L
> >
> > 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..."
> 
> 
> -- 
> Steven.




More information about the Python-list mailing list