Python Forum
PyODBC error - second parameter to executemany must be a sequence, iterator, or gener
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PyODBC error - second parameter to executemany must be a sequence, iterator, or gener
#1
Hello,

I am trying this to get some values into SQLServer2017. when I try this code it throws pyodbc.ProgrammingError: The second parameter to executemany must be a sequence, iterator, or generator. How can I fix this

Thanks in advance
for key, value in myDict.items():
        for idx,retData in enumerate(value): 
            #everything into dict
            retData["remotecontrol_id"], idx
            retData["device_id"],idx 
            retData["alias"], idx
            retData["groupid"], idx
            retData["online_state"], idx
                        
            
    sqeel = ("""INSERT INTO dbo.devTBLA[remotecontrol_id], [device_id], [alias],[groupid],
    [online_state])) 
    values(%s, %s, %s, %s, %s, %s, %s)""")
    numRows = cursor.executemany(sqeel, retData) #second parameter to executemany must be a    sequence, iterator, or generator.


    connStr.commit()
    cursor.close()
    connStr.close()
Reply
#2
Hello Larx60+
Here is the code, Let me know if what else is needed> Thanks
import requests
from requests.auth import HTTPDigestAuth
import json
from pandas.io.json import json_normalize
import pandas as pd
from pandas import ExcelWriter
import random
import pyodbc
import sqlalchemy
def DBInsertD():
headers = {"content-type": "application/json", "Authorization": "Bearer nnnnn"}
    r = requests.get(url, headers=headers)   
    r3 = r.json() #Convert to JSON
connStr= pyodbc.connect('DRIVER={SQL Server};Server=Servername;Trusted_Connection=True;DATABASE=myDB')
    cursor = connStr.cursor()
    for key, value in r3.items():
        for idx,retData in enumerate(value): 
            #everything into dict
            retData["remotecontrol_id"], idx
            retData["device_id"],idx 
            retData["alias"], idx
            retData["groupid"], idx
            retData["online_state"], idx 
            
                        
            
    sqeel = ("""INSERT INTO dbo.TVDevicesA[remotecontrol_id], [device_id], [alias],[groupid],
    [online_state])) 
    values(%s, %s, %s, %s, %s, %s, %s)""")
    numRows = cursor.executemany(sqeel, x) #pyodbc.ProgrammingError: The second parameter to executemany must be a sequence, iterator, or generator.


    connStr.commit()
    cursor.close()
    connStr.close()
DBInsertD()
Error output
Error:
pyodbc.ProgrammingError: The second parameter to executemany must be a sequence, iterator, or generator. The program '[12832] python.exe' has exited with code -1 (0xffffffff)
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Using pyodbc&pandas to load a Table data to df tester_V 3 746 Sep-09-2023, 08:55 PM
Last Post: tester_V
  [ERROR] ParamValidationError: Parameter validation failed: Invalid type for parameter gdbengo 3 10,635 Dec-26-2022, 08:48 AM
Last Post: ibreeden
  prime numbers with iterator and generator cametan_001 8 1,771 Dec-17-2022, 02:41 PM
Last Post: cametan_001
  Command error - cursor.executemany(comandoSQL,valoresInserir) TecInfo 2 1,302 Nov-18-2022, 01:57 PM
Last Post: TecInfo
  pyodbc gmerritt 8 2,798 Feb-21-2022, 07:21 PM
Last Post: gmerritt
  resetting an iterator to full Skaperen 7 6,808 Feb-20-2022, 11:11 PM
Last Post: Skaperen
  popping an iterator Skaperen 11 3,600 Oct-03-2021, 05:08 PM
Last Post: Skaperen
  TypeError: sequence item 0: expected str instance, float found Error Query eddywinch82 1 5,023 Sep-04-2021, 09:16 PM
Last Post: eddywinch82
  q re glob.iglob iterator and close jimr 2 2,174 Aug-23-2021, 10:14 PM
Last Post: perfringo
  Error : "can't multiply sequence by non-int of type 'float' " Ala 3 3,023 Apr-13-2021, 10:33 AM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020