'How to format dataframe that can be inserted in SQL Server table using Python
I'm trying to insert records into my SQL Server table using Python. I defined sample data to insert and successfully inserted a record into my table 'CHANGE ADDRESS'.`
records = [['WO-00001' , 'TESTA', 'TESTB' , 'TESTC'],
['WO-00002' , 'TESTA', 'TESTB' , 'TESTC'],
['WO-00003' , 'TESTA', 'TESTB' , 'TESTC']]
cursor = conn.cursor()
# Insert Dataframe into SQL Server:
insert_query = '''INSERT CHANGE_ADDRESS
VALUES (?, ?, ?, ?);'''
for row in records:
values = (row[0],row[1],row[2],row[3])
cursor.execute(insert_query, values)
print(row)
conn.commit()
cursor.close()
However, when I change my sample data and used my created df the data inserted was this. (Getting the values/letters of the column names)
R O I D
R O _ N
T _ A D
R _ A D
and in print row
RO_ID
RO_NAME
T_ADDRESS
R_ADDRESS
Then, I tried to convert dataframe values.tolist
records = df.values.tolist()
cursor = conn.cursor()
# Insert Dataframe into SQL Server:
insert_query = '''INSERT CHANGE_ADDRESS
VALUES (?, ?, ?, ?);'''
for row in records:
values = (row[0],row[1],row[2],row[3])
cursor.execute(insert_query, values)
print(row)
conn.commit()
cursor.close()
However, I got this error:
Invalid character value for cast specification
My Table columns are all set to VARCHAR.
MY df
RO_ID RO_NAME T_ADDRESS R_ADDRESS
0 WO-0000000351 STORE1 TEST CITY TEST CITY
1 NaN STORE2 TEST CITY NaN
2 NaN TEST GROCERY TEST CITY NaN
3 NaN STORE TEST CITY NaN
4 WO0000000796 TEST PHARMACY UNASSIGNED UNASSIGNED
.. ... ... ... ...
174 WO-0000000409 TEST GEN. MDSE. TEST CITY TEST CITY
175 WO-0000000371 TEST COUNTRYSIDE TEST CITY TEST CITY
176 WO-0000000371 TEST COUNTRYSIDE TEST CITY TEST CITY
177 WO-0000000371 TEST COUNTRYSIDE TEST CITY TEST CITY
178 WO-0000000371 TEST COUNTRYSIDE TEST CITY TEST CITY
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
