无法使用psycopg2从postgre数据库中拉出数据

2024-05-03 20:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python PostgreSQL有问题。我用的是psycopg2。 这是我的postgres数据库:

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

我想提取schema:prod-table:activation中的信息

这是我的密码

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")

但它不返回任何值。。。我肯定里面有数据。怎么可能呢? 谢谢你们。你知道吗


Tags: 数据库informationschemapostgresqltablepostgresprodconn
2条回答

而我将使用游标.fetchone()在获得单个值的情况下,即使用COUNT

SELECT count(*) FROM prod.activation

如果我想处理一组行,我喜欢利用游标在结果集中iterate的能力。这样可以更好地控制结果、处理结果的方式以及返回结果的方式。你知道吗

光标可以像Python列表一样迭代:

for row in cur:
    dostuff()

如果您使用named cursors(在构建游标时只需设置name属性),psycopg2将在默认情况下为您分块SELECT。这将在迭代时在后台自动发生。你知道吗

您还可以使用with语法在处理完光标后自动关闭它。(适用于较小范围的使用。)

根据文档(http://initd.org/psycopg/docs/cursor.html)当前执行()游标总是返回None。您必须使用其中一个fetch方法,例如:

print cur.fetchall()

-克

相关问题 更多 >