【发布时间】:2017-01-11 13:52:34
【问题描述】:
我正在添加从 Flask sqlalchemy 核心查询的数据。缺少所有数据的列。所以我用下面的代码添加回来:有很多列,但我只是简化为一些。
col = ['index','Stock','Name','MACD','STOCH','RSI']
a = call.fetchall()
print a
>>>a=[(0, 'MAGNUM', 'MAGNUM BERHAD', 'SS', 'S', 'H1'),(1,'ABC','ABC BH','SS','S','H2')].
dicts = [dict(zip(col, d)) for d in a]
print dicts
>>>[{'MACD': 'JAC', 'RSI': 'SS', 'STOCH': 'SB', 'Name': 'H',Stock':'H'}]
dicts 输出跳过第一个结果,即索引 0。它转到索引 1。此外,索引没有映射到 dicts。 如何让它以正确的顺序映射所有内容?
【问题讨论】:
-
字典无法保持顺序。
-
你的意思是
[dict(a,b) for a,b in zip(col,d)]? -
你可以实际上只是做
data = [dict(row) for row in a],但为什么还要这样做呢?你可以传递a并执行row.Stock之类的操作。 -
@WayneWerner,你能进一步解释一下吗?
标签: python dictionary