Я использую Python и pyodbc, чтобы извлечь данные из моего SQL Server, поместить их в список, а затем распечатать этот список. Работает нормально, когда я все ввожу вручную. Но я пытаюсь использовать модели для очистки кода и в конечном итоге сделать все очень удобным для пользователя.
Это мой Main
файл:
import Models
cursor = Models.dbConnect()
states = Models.dbSelect(cursor, "State")
print(states)
, а это мой Models
file
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)
IМне нужно было только ввести нужный столбец в файл Main
, но все, что я пробовал, либо заставляло меня вручную вводить нужный столбец в мои файлы Main
и Models
, либо работать с грязным результатом. ,