首页 > 解决方案 > SQL游标的字典结构

问题描述

假设我有一个 SELECT SQL 查询,我想返回一个结构,例如前 3 行:

{
0: {'ColName0': 'Col1RowValue0', 'ColName1': 'Col1RowValue0'},
1: {'ColName0': 'Col0RowValue1', 'ColName1': 'Col1RowValue1'},
2: {'ColName0': 'Col0RowValue2', 'ColName1': 'Col1RowValue2'}
...
}

我接近以下内容,但无法使外部索引结构正常工作:{0:{ },1:{ }}

with read_con.cursor() as cur:
    cur.execute(DONOR_SELECT)
    column_names = [col[0] for col in cur.description]
    temp_d = [dict(zip(column_names, row))  
        for row in cur.fetchall()]
print(temp_d)

游标来自 pyodbc

标签: pythonsqlloopsdictionarycursor

解决方案


你需要dict comprehension一个enumerate

temp_d = {i : dict(zip(column_names, row)) for i, row in enumerate(cur.fetchall())}  

推荐阅读