我正在使用Python和pyodbc从SQL Server中提取数据,将其放入列表中,然后打印该列表。当我手动输入所有内容时,它工作正常。但是我正在尝试使用模型来清理代码,并最终使所有内容都变得非常用户友好。
这是我的Main
文件:
import Models
cursor = Models.dbConnect()
states = Models.dbSelect(cursor, "State")
print(states)
这是我的Models
文件
import pyodbc
def dbConnect(driver="ODBC Driver 17 for SQL Server", server="serverName", database="dbName"):
cnxn = pyodbc.connect("Driver={" + driver + "};"
"Server=" + server + ";"
"Database=" + database + ";"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
return cursor
def dbSelect(cursor, Column="*", Table="States", Rest=""):
cursor.execute('SELECT ' + Column + ' FROM ' + Table + ' ' + Rest)
results = []
for row in cursor:
results.append(row)
return results
这将返回以下混乱的结果
[('Alabama', ), ('Alaska', ), ('Arizona', ), etc]
我可以通过手动输入要尝试这样调用的特定列来轻松清理
for row in cursor:
results.append(row.State)
返回以下结果
['Alabama', 'Alaska', 'Arizona', etc]
当我只使用“列”时,它会崩溃,因为行对象没有列属性。
for row in cursor:
results.append(row.Column)
我只需要在Main
文件中输入所需的列,但是我尝试的所有操作都迫使我手动在Main
和{{ 1}}文件,或处理混乱的结果。