PyODBC error - second parameter to executemany must be a sequence, iterator, or gener - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: PyODBC error - second parameter to executemany must be a sequence, iterator, or gener (/thread-17131.html) |
PyODBC error - second parameter to executemany must be a sequence, iterator, or gener - RBeck22 - Mar-29-2019 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() RE: PyODBC error - second parameter to executemany must be a sequence, iterator, or gener - RBeck22 - Mar-29-2019 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
|