Кажется, я не могу прочитать результаты в словаре. Он продолжает выдавать мне результаты в виде списка, а не словаря.
Вот мой код:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
cursor = cnxn.cursor()
# Sample select query
cursor.execute("SELECT TOP 500 [OrderNumber], [ProductID] FROM [dbo].[Results]")
columns = [column[0] for column in cursor.description]
results = [dict(zip(columns, row)) for row in cursor.fetchall()]
for x in results.values():
print(x)
Он дает мне список, а не словарь. Вот что я получаю вместо этого:
[{'OrderNumber': '123456789', 'ProductID': '11111111'}, {'OrderNumber': '234567891', 'ProductID': '222222'}
Это не словарь, как мне нужно. Я пробовал читать это как словарь, и Python все время говорит мне, что я смотрю список. Глядя на values () или items (), я получаю сообщение об ошибке, что объект списка не имеет атрибутов 'values' AttributeError: 'list' object has no attribute 'values'
Более того, как я могу получить мои результаты, чтобы быть фактическим порядковым номером ключ productID? Что-то вроде:
{"123456789":"11111111", "234567891":"22222222"}
Я пробовал другие способы получить это, но все еще получаю список, а не настоящий словарь. Я пробовал:
for row in cursor.fetchall():
results.append(dict(zip(columns,row)))