pyodbcexecutemany

pyodbc INSERT INTO from a list


I am trying to insert data into an Access mdb file using a list as the source for the values.

cursor.execute("select * from Components")
cursor.executemany("""
                  INSERT INTO Components
                  ([Database Number],Description, [Warehouse Code],[Supplier Code], Usage, Major1, Minor1)
                  VALUES (?,?,?,?,?,?,?)
                  """), input_list
cursor.commit()

I get the error "TypeError: function takes exactly 2 arguments (1 given)". The error refers to the line """), input_list

What I am I doing wrong? Thanks in advance for your help.

Here is a print of the input_list

['7', '1/2"  PVC 90° Elbow', '406-005', 'SUP2', 'Y', 'PVC FS', 'PVC FS']
['7', '3/4"  PVC 90° Elbow', '406-007', 'SUP2', 'Y', 'PVC FS', 'PVC FS']
['7', '1"  PVC 90° Elbow', '406-010', 'SUP2', 'Y', 'PVC FS', 'PVC FS']
['7', '1.25"  PVC 90° Elbow', '406-012', 'SUP2', 'Y', 'PVC FS', 'PVC FS']
['7', '1.5"  PVC 90° Elbow', '406-015', 'SUP2', 'Y', 'PVC FS', 'PVC FS']
['7', '2"  PVC 90° Elbow', '406-020', 'SUP2', 'Y', 'PVC FS', 'PVC FS']

Solution

  • I figured it out. The last line under cursor.executemany should read:

    """, input_list)

    I had the close parenthesis in the wrong place