Python 将查询结果分配给变量

Python 将查询结果分配给变量,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我有以下查询cur.execute(“从列表中选择COUNT(addr),其中addr='192.168.1.1'”)来计算相同地址(192.168.1.1)出现在列表中的次数addr是inet类型 当我将查询分配给变量并打印其结果时,我得到None: res = cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'") print res # None 获取此类内容的正确方法是什么?您必须使用fe

我有以下查询
cur.execute(“从列表中选择COUNT(addr),其中addr='192.168.1.1'”)
来计算相同地址(192.168.1.1)出现在
列表中的次数
addr
是inet类型

当我将查询分配给变量并打印其结果时,我得到
None

res = cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")
print res # None

获取此类内容的正确方法是什么?

您必须使用
fetchone()
fetchall()
从光标获取行

请看下面的图片

在您的案例中,大致如下:

res = cur.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")
row = cur.fetchone()
print(row)

再解释一下

方法准备并执行数据库操作,并根据文档:

方法返回None。如果执行了查询,则返回的值 可以使用fetch*()方法检索

fetchone()
是使用最方便的方法,因为查询返回一个值,即计数:

print(cur.fetchone())

可以使用以下步骤使用python检索关系数据库的数据:

    #!/usr/bin/python
    # import the desired package
    import MySQLdb

    # Open database connection
    db = MySQLdb.connect(hostaddress,user,password,db_name)

    # prepare a cursor object using cursor() method
    cursor = db.cursor()

    # execute SQL query using execute() method.
    cursor.execute("SELECT COUNT(addr) FROM list_table WHERE addr = '192.168.1.1'")

    # Fetch a single row using fetchone() method and store the result in a variable. 
    data = cursor.fetchone()

  #OR use fetchall() method to fetch multiple rows and store the result in a list variable. 
 data = cursor.fetchall()

    print data

    # disconnect from server
    db.close()
通读Python的。