0

我已经搜索了文档和 SO,但找不到任何可以解决我的问题的东西。我正在尝试从我的 sqlite 数据库中调用一个选择并将其添加到以列为键的字典中。当我这样做时,它会为每个列/键返回一行。它有 14 列,如果我只有 4 行,它会为每一行重复。这是第一次尝试

columns = [desc[0] for desc in cursor.description]
results = []
for row in r:
    Summary = {}
    items = zip(columns, row)
    for (items, values) in items:
        Summary[items] = row
        results.append(Summary)

然后我还尝试了文档中给出的 row_factory。那没有用。我的最终目标是能够通过使用垂直打印到文本文件

for x in results:
    print x[name]
    print x[email]
    etc

任何帮助表示赞赏

4

1 回答 1

2

您正在错误地创建字典。利用:

for row in r:
    summary = dict(zip(columns, row))
    results.append(summary)

反而。

您的代码将整个row序列设置为每个键的值Summary,而不是单个列值,然后将相同的字典附加到results每个列键的列表中。

于 2013-07-02T17:12:21.623 回答