获取此查询返回的数字或行的正确方法是什么?我正在特别查看是否没有返回结果。

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}

谢谢。

最佳答案

results本身是一个行对象,就您而言(根据声明的print输出判断),一个字典(您可能配置了dict-like cursor subclass);只需访问count密钥:

result = cur.fetchone()
print result['count']

因为您使用了.fetchone(),所以仅返回一行,而不返回行列表。

如果您不使用类似dict(-)的行游标,则行为元组,计数值为第一个值:
result = cur.fetchone()
print result[0]

关于python - 获取psycopg2 count(*)个结果数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19191766/

10-15 20:44