python 函数具有意外的 sqlite3 打印输出结果

python function with unexpected sqlite3 printout result

我试图在我的数据库中打印出一些命令,但现在它打印出意外的答案。让我先给你看我的代码。 x 和 y 是我需要在我的数据库中搜索并获取一些命令的东西

x="create vlan"
y="global"

def readswitch(x,y):

    conn = sqlite3.connect('server.db')
    if conn:
        cur = conn.cursor()
        run= cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
        read = cur.fetchall()
        return run;

import database
print (database.readswitch(x,y))

但现在结果如下

C:\Python34\python.exe C:/Users/tommy/PycharmProjects/2015122/database.py
<sqlite3.Cursor object at 0x0000000002753CE0>
<sqlite3.Cursor object at 0x0000000002753DC0>

Process finished with exit code 0

我以前没有看到这个结果! 这是什么问题?

您似乎在 readswitch 函数中返回游标而不是获取的数据。 运行 对象根本不需要

而不是

  cur = conn.cursor()
  run= cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
  read = cur.fetchall()
  return run; 

你可能需要

  cur = conn.cursor()
  cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
  read = cur.fetchall()
  return read;