在尝试dict
从 Python 2.x 中的 SQLite3 查询生成 s 列表时,我可以执行以下操作:
import sqlite3
cur = sqlite3.connect('filename.db').cursor()
query = cur.execute('SELECT * FROM A_TABLE')
colname = [ d[0] for d in query.description ]
result_list = []
for r in query.fetchall():
row = {}
for i in range(len(colname)):
row[colname[i]] = r[i]
result_list.append(row)
del row
cur.close()
cur.connection.close()
print result_list
有了这个,我尝试获取一个字典列表,每个键值对指示列名和行的分配值。
但是,尽管有效并且可以合理理解,但嵌套for
循环让我认为可能有一个 Python 习惯用法可以简化这一点——特别是对理解的一些巧妙使用。我怀疑可能会求助于生成器,但我仍然不太了解如何使用它们。所以我问:有没有办法通过对生成器和/或字典的理解来“压缩”代码并获得预期的字典列表?