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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
  Why not use len(alist) in an iterator? Pedroski55 5 1,465 Jun-27-2024, 02:49 PM
Last Post: snippsat
  Using pyodbc&pandas to load a Table data to df tester_V 3 2,797 Sep-09-2023, 08:55 PM
Last Post: tester_V
  [ERROR] ParamValidationError: Parameter validation failed: Invalid type for parameter gdbengo 3 17,529 Dec-26-2022, 08:48 AM
Last Post: ibreeden
  prime numbers with iterator and generator cametan_001 8 3,678 Dec-17-2022, 02:41 PM
Last Post: cametan_001
  Command error - cursor.executemany(comandoSQL,valoresInserir) TecInfo 2 2,548 Nov-18-2022, 01:57 PM
Last Post: TecInfo
  pyodbc gmerritt 8 4,966 Feb-21-2022, 07:21 PM
Last Post: gmerritt
  resetting an iterator to full Skaperen 7 11,300 Feb-20-2022, 11:11 PM
Last Post: Skaperen
  popping an iterator Skaperen 11 5,678 Oct-03-2021, 05:08 PM
Last Post: Skaperen
  TypeError: sequence item 0: expected str instance, float found Error Query eddywinch82 1 7,204 Sep-04-2021, 09:16 PM
Last Post: eddywinch82
  q re glob.iglob iterator and close jimr 2 3,237 Aug-23-2021, 10:14 PM
Last Post: perfringo

Forum Jump:

User Panel Messages

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