如何将数据库表列名附加为列表的键以将其转换为dict

时间:2014-08-30 18:32:19

标签: python

我有一个for循环,它构造了一些像这样的结果

result =[[1,stu1,grade A],[2,stu2,grade B]]

我想像这样转换它

result = [id:1,name:stu1,grade: grade A],[id:2, name: stu2, grade:grade B]

其中id,name,grade是表的列名。我有这样的循环

result = []
for stu_details in stu.details:
      result.append([stu_details.id,stu_details.name,stu_details.grade])

如何将结果与列名一起返回?有谁可以帮忙。

3 个答案:

答案 0 :(得分:2)

>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A']))
{'grade': 'A', 'id': 1, 'name': 'stu1'}

答案 1 :(得分:0)

zip是为此用途而制作的内置函数。

>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A']))
{'grade': 'A', 'id': 1, 'name': 'stu1'}

如果你列出的内存很大,你可以使用itertools.izip,它具有相同的行为但是generator样式。

答案 2 :(得分:0)

您可以通过以下代码

来实现此目的
result =[[1,'stu1','grade A'],[2,'stu2','grade B']]
title = ('id', 'name', 'grade')
map(lambda x: dict(zip(title, x)), result)

结果将是

[{'grade': 'grade A', 'id': 1, 'name': 'stu1'},
    {'grade': 'grade B', 'id': 2, 'name': 'stu2'}]