您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用pyodbc从SQL查询返回列表?

5b51 2022/1/14 8:21:28 python 字数 3166 阅读 544 来源 www.jb51.cc/python

我试图运行一个选择查询以使用python 2.7中的pyodbc从SQL Server检索数据.我希望数据在列表中返回.我写的代码如下.它有点工作,但不符合我的预期.我的返回列表如下所示:Index Type Size Value 0 Row 1 Row object of pyod

概述

我试图运行一个选择查询以使用python 2.7中的pyodbc从sql Server检索数据.我希望数据在列表中返回.我写的代码如下.

它有点工作,但不符合我的预期.我的返回列表如下所示:

Index     Type     Size        Value
0         Row      1           Row object of pyodbc module
1         Row      1           Row object of pyodbc module
...
105       Row      1           Row object of pyodbc module

我希望看到类似下面的内容(即我在sql中的表)

ActionId   AnnDate      Name    SaleValue
128929     2018-01-01   Bob     105.3
193329     2018-04-05   Bob     1006.98
...
23654      2018-11-21   Bob     103.32

列表不是使用pyodbc从SQL查询返回数据的最佳方法吗?

import pyodbc


def GetsqlData(dbName,query):

    sPass = 'MyPassword'
    sServer = 'MyServer\\sql1'
    uname = 'MyUser'

    cnxn = pyodbc.connect("Driver={sql Server Native Client 11.0};"
                    "Server=" + sServer + ";"
                    "Database=" + dbName + ";"
                    "uid=" + uname + ";pwd=" + sPass)

    cursor = cnxn.cursor()
    cursor.execute(query)

    return list(cursor.fetchall())

import pyodbc


cnxn = pyodbc.connect("YOUR_CONNECTION_STRING")
cursor = cnxn.cursor()

cursor.execute("YOUR_QUERY")

columns = [column[0] for column in cursor.description]
results = [columns] + [row for row in cursor.fetchall()]

for result in results:
    print result

# EXAMPLE OUTPUT
# ['col1','col2']
# ['r1c1','r1c2']
# ['r2c1','r2c2']

根据您使用结果的方式,我经常发现有一个dicts列表更有用.例如:

results = [dict(zip(columns,row)) for row in cursor.fetchall()]

for result in results:
    print result

# EXAMPLE OUTPUT
# {'col1': 'r1c1','col2':'r1c2'}
# {'col1': 'r2c1','col2':'r2c2'}

总结

以上是编程之家为你收集整理的如何使用pyodbc从SQL查询返回列表?全部内容,希望文章能够帮你解决如何使用pyodbc从SQL查询返回列表?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶