Получение данных с SQL Server с использованием python и pyodbc через Model - PullRequest
0 голосов
/ 29 октября 2019

Я использую 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, либо работать с грязным результатом. ,

...