[Tutor] Excel to SQL DB using Python
Hannah Jones
hannah.jones at ebcbrakesuk.com
Fri Feb 25 07:00:37 EST 2022
Hello,
I need help with some code if possible please.
I am trying to convert an excel file to a list and then iterate over the list and add to an SQL database.
I am having trouble adding the data to the database.
I have already established the connection - all good.
My code is:
Locations = []
filename = input("Enter Filename Containing your Locations: ")
with open(filename, "r") as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
#skips the header from the excel file
next(csv_reader)
for lines in csv_reader:
Locations.append(lines)
# SQL Statements
sqlDELETE = "DELETE FROM dbo.GeocodingLocations"
cursor.execute(sqlDELETE)
sqlINSERTBase = "INSERT INTO dbo.GeocodingLocations (SageCode, Name, AddressLine1, AddressLine2, AddressLine3, AddressLine4, City, CountryName) VALUES "
sqlVALUES = ""
# Iteration to add to Studio DB
for x in Locations:
SageCode = x[0] ; Name = x[1] ; AddressLine1 = x[2] ; AddressLine2 = x[3] ; AddressLine3 = x[4] ; AddressLine4 = x[5] ; City = x[6] ; CountryName = x[7]
sqlVALUES = sqlVALUES + "( '" + SageCode + "', '" + Name + "', '" + AddressLine1 + "', '" + AddressLine2 + "', '" + AddressLine3 + "', '" + AddressLine4 + "', '" + City + "', '" + CountryName + "' ), '"
sqlINSERT = sqlINSERTBase + sqlVALUES
sqlINSERT = sqlINSERT
cursor.execute(sqlINSERT)
cursor.commit()
con.close()
however I keep receiving this error; pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'S'. (102) (SQLExecDirectW)")
I know my error is in this line;
sqlVALUES = sqlVALUES + "( '" + SageCode + "', '" + Name + "', '" + AddressLine1 + "', '" + AddressLine2 + "', '" + AddressLine3 + "', '" + AddressLine4 + "', '" + City + "', '" + CountryName + "' ), '"
but I am not sure where exactly, any help is highly appreciated.
Thank you
Hannah
More information about the Tutor
mailing list