Python转换查询输出

时间:2016-05-18 05:20:49

标签: python list dictionary

我有一个python脚本,它将SQL查询返回到列表列表中,例如:

result = [ ['12345', 'Red', 'House', 150, '18/05/2016', 27.3],
           ['34534', 'Blue', 'Car', 500, '22/12/2015', 587.52] ]

每个列表中的第一项是ID,然后每个项目都是与每条记录相关的属性,例如ColourTypeSizeDateCost

ColourDate等项目属性可能对每个SQL查询运行都有所不同,因为它们是从另一个查询结果(查询列)动态添加到我的SQL查询中,例如:< / p>

columns = {'RecID': 'RecordID', 'Color': 'Colour', 'Type': 'Type', 'Size': 'Size', 'PurchaseDate': 'Date', 'PurchaseCost': 'Cost'}

newQueryFields = "[UniqueID]"
for x in columns:
    newQueryFields = "{}, [{}]".format(newQueryFields, columns[x])

我已经设法使用以下代码将其放入列表字典中,但对于(但未写入的)其余代码,如果我可以引用字典项目会更好。

newResult = dict()
for rec in result:
    newResult[rec[0]] = rec

结果是:

result = {'12345': ['12345', 'Red', 'House', 150, '18/05/2016', 27.3],
          '34534': ['34534', 'Blue', 'Car', 500, '22/12/2015', 587.52] }

但是我想把结果放到字典词典中(我想?)但我无法理解如何构造我的代码输出:

newResult = {'12345': {'ID': '12345', 'Colour': 'Red', 'Type': 'House', 'Size': 150, 'Date': '18/05/2016', 'Cost': 27.3}, 
             '34534': {'ID': '34534', 'Colour': 'Blue', 'Type': 'Car', 'Size': 500, 'Date': '22/12/2015', 'Cost': 587.52} }

1 个答案:

答案 0 :(得分:2)

这是为了让您了解如果columns已经在您身边,您可以做些什么:

columns = ['ID', 'Colour', 'Type', 'Size', 'Date', 'Cost']
newResult = {rec[0]: dict(zip(columns, rec)) for rec in result}

显然,您需要首先获得columns首先动态添加的情况。