говорит так.
аюсь написать скрипт Python, который может взять листы Excel и импортировать их в мою базу данных SQL Server Express (с проверкой подлинности Windows) в виде таблиц. Для этого я используюpandas
читать файлы Excel вpandas DataFrame
Потом я надеюсь использоватьpandas.to_sql()
импортировать данные в мою базу данных. Чтобы использовать эту функцию, однако, мне нужно использоватьsqlalchemy.create_engine()
.
Я могу подключиться к своей базе данных, используяpyodbc
в одиночку и запустить тестовые запросы. Это соединение выполняется с помощью следующего кода:
def create_connection(server_name, database_name):
config = dict(server=server_name, database= database_name)
conn_str = ('SERVER={server};DATABASE={database};TRUSTED_CONNECTION=yes')
return pyodbc.connect(r'DRIVER={ODBC Driver 13 for SQL Server};' + conn_str.format(**config))
...
server = '<MY_SERVER_NAME>\SQLEXPRESS'
db = '<MY_DATABASE_NAME>
connection = create_connection(server, db)
cursor = connection.cursor()
cursor.execute('CREATE VIEW test_view AS SELECT * FROM existing_table')
cursor.commit()
Тем не менее, это не очень полезно, так как я не могу использоватьpandas.to_sql()
- для этого мне нужен двигатель отsqlalchemy.create_engine()
, но я изо всех сил пытаюсь понять, как использовать мои же детали в моемcreate_connection()
Функция выше, чтобы успешно создать движок и подключиться к базе данных.
Я пробовал много, много комбинаций по направлениям:
engine = create_engine("mssql+pyodbc://@C<MY_SERVER_NAME>\SQLEXPRESS/<MY_DATABASE_NAME>?driver={ODBC Driver 13 for SQL Server}?trusted_connection=yes")
conn = engine.connect().connection
или же
engine = create_engine("mssql+pyodbc://@C<MY_SERVER_NAME>\SQLEXPRESS/<MY_DATABASE_NAME>?trusted_connection=yes")
conn = engine.connect().connection