我有一个python脚本,它将SQL查询返回到列表列表中,例如:
result = [ ['12345', 'Red', 'House', 150, '18/05/2016', 27.3],
['34534', 'Blue', 'Car', 500, '22/12/2015', 587.52] ]
每个列表中的第一项是ID,然后每个项目都是与每条记录相关的属性,例如Colour
,Type
,Size
,Date
, Cost
。
Colour
,Date
等项目属性可能对每个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} }
答案 0 :(得分:2)
这是为了让您了解如果columns
已经在您身边,您可以做些什么:
columns = ['ID', 'Colour', 'Type', 'Size', 'Date', 'Cost']
newResult = {rec[0]: dict(zip(columns, rec)) for rec in result}
显然,您需要首先获得columns
首先动态添加的情况。