2014-05-09 32 views
0

我有python PostgreSQL的问题。我正在使用psycopg2。 这里是我的Postgres数据库的样子:未能使用psycopg2从postgre数据库中提取数据

Database: qcdata 
    ---information_schema 
    ---pg_catalog 
    ---prod 
     ---activation 
     --- *** Many other table *** 
    ---public 

我要拉出来在架构中的信息:PROD - 表:这里激活

是我的代码

import psycopg2 
conn = psycopg2.connect(host='10.0.80.180', port = '5432', 
        dbname = 'qcdata', 
        user = 'username', password = 'pwd') 
cur = conn.cursor() 
print cur.execute("SELECT * FROM prod.activation") 

但它返回无..我确信里面有数据。那怎么可能? 谢谢你们。

回答

0

虽然我会用在我得到一个值的情况下cursor.fetchone(),即在使用COUNT

SELECT count(*) FROM prod.activation 

如果我要处理一组行,我喜欢在结果集中利用游标的能力iterate。这样可以更好地控制结果,如何处理结果以及返回结果。

光标可以遍历就像一个Python列表:

for row in cur: 
    dostuff() 

如果使用named cursors通过(简单集合构建光标当name属性),psycopg2将大块的SELECT你,到2000年默认。这将在迭代时在后台自动发生。

您也可以使用with语法在完成后自动关闭光标。 (适用于较小范围的用途。)