Error al intentar crear una nueva tabla de base de datos en SQL Server 2016 desde un archivo csv al usar python 3.5 con pandas y sqlalchemy
Estoy tratando de usar Python para leer mi archivo csv y ponerlo en Microsoft SQL Server 2016 como una nueva tabla. En pocas palabras, no quiero crear una tabla en SQL e importar el csv, quiero escribir un script en python que pueda leer el csv y crear una nueva tabla en SQL para mí.
ACTUALIZAR
Puede que tenga que repensar mi enfoque. He corregido el controlador, pero recibo el siguiente error deto_sql
. Estoy pensando que hay algo mal con mi esquema de autenticación. Lamentablemente, elto_sql
documentación ysql_alchemy
No está arrojando mucha luz. Comenzando a considerar alternativas.
sqlalchemy.exc.DBAPIError was unhandled by user code
Message: (pyodbc.Error) ('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53]. (53) (SQLDriverConnect)')
Códigoimport pandas as pd
import sqlalchemy
#Read the file
data = pd.read_csv(file.csv)
#Connect to database and write the table
server = "DERPSERVER"
database = "HERPDB"
username = "DBUser"
password = "password"
tablename = "HerpDerpTable"
driver = "SQL+Server+Native+Client+11.0"
#Connect to SQL using SQL Server Driver
print("Connect to SQL Server")
cnxn = sqlalchemy.create_engine("mssql+pyodbc://"+username+":"+password+"@"+server +"/"+database + "?driver="+driver)
ACTUALIZAR
Reescribí la cadena de la siguiente manera, pero no funciona:
sqlalchemy.create_engine('mssql+pymssql://'+username+':'+ password + '@' + server + '/' + database + '/?charset=utf8')
data.to_sql(tablename, cnxn);
IntentosEstas son algunas cosas importantes a tener en cuenta en mi enfoque. Presta especial atención al segundo punto que comparto a continuación. Creo que mi cadena de conexión paracreate_engine
está de alguna manera o tal vez mal, pero no sé qué está mal porque seguí la documentación.
to_sql
escribir en la base de datos, pero ¿creo que mi cadena de conexión todavía puede estar en mal estado? Consulté estopregunta en stackoverflow.Actualizar Agregué la especificación del controlador como MaxU y la documentación de sqlalchemy especificada. Sin embargo, recibo un error que dice que no se encontró el nombre de mi fuente de datos y no se especifica ningún controlador predeterminado conto_sql
. ¿Necesito alimentarme?to_sql
el conductor también? Si es así, ¿dónde está la documentación o un código de muestra que me muestra dónde me estoy equivocando?Estoy haciendo un gran esfuerzo para recoger Python y usarlo como un lenguaje de secuencias de comandos debido a las metas y necesidades futuras. Agradecería cualquier ayuda, ayuda, tutoría prestada.