Whats the correct way to get the number or rows returned by this query? I’m specifically looking to see if no results are returned.
sql = 'SELECT count(*) from table WHERE guid = %s;'
data=[guid]
cur.execute(sql,data)
results = cur.fetchone()
for r in results:
  print type(r) # Returns as string {'count': 0L} Or {'count': 1L}
Thanks.
Advertisement
Answer
results is itself a row object, in your case (judging by the claimed print output), a dictionary (you probably configured a dict-like cursor subclass); simply access the count key:
result = cur.fetchone() print result['count']
Because you used .fetchone() only one row is returned, not a list of rows. 
If you are not using a dict(-like) row cursor, rows are tuples and the count value is the first value:
result = cur.fetchone() print result[0]