pyodbc.connect () funciona, pero no sqlalchemy.create_engine (). connect ()

Estoy intentando escribir un script de Python que pueda tomar hojas de Excel e importarlas en mi base de datos SQL Server Express (con autenticación de Windows) como tablas. Para hacer esto, estoy usandopandas leer los archivos de Excel en unpandas DataFrame, Entonces espero usarpandas.to_sql() para importar los datos a mi base de datos. Para usar esta función, sin embargo, necesito usarsqlalchemy.create_engine().

Puedo conectarme a mi base de datos usandopyodbc solo y ejecutar consultas de prueba. Esta conexión se realiza con el siguiente código:

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()

Sin embargo, esto no sirve de mucho ya que no puedo usarpandas.to_sql() - para hacerlo necesito un motor desqlalchemy.create_engine(), pero estoy luchando por descubrir cómo usar mis mismos detalles en micreate_connection() funcionar arriba para crear con éxito un motor y conectarse a la base de datos.

He intentado muchas combinaciones en la línea de:

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

o

engine = create_engine("mssql+pyodbc://@C<MY_SERVER_NAME>\SQLEXPRESS/<MY_DATABASE_NAME>?trusted_connection=yes")   
conn = engine.connect().connection

Respuestas a la pregunta(1)

Su respuesta a la pregunta