我正在添加从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。 如何使它以正确的顺序映射所有内容?
答案 0 :(得分:3)
您无法预先假定字典中的顺序。
既然你改变了问题,我改变了答案。 .content {
background-color: #e6e6e6;
border: 1px solid #bcbcbc;
/*height: 650px;*/ /*Remove this*/
margin: 0 auto 30px;/*Change this*/
overflow: hidden;/*Add this*/
position: relative;
/*top: -100px;*//*Remove this*/
width: 650px;
}
.grid {
width: 600px;
/*height: 1000px;*/ /*Remove this*/
margin: 0 auto;
padding-top: 30px;
}
是一个元组列表,因此以下内容可以正常工作:
a
它创建了一个包含from collections import OrderedDict
col = ['index','Stock','Name','MACD','STOCH','RSI']
a=[(0, 'MAGNUM', 'MAGNUM BERHAD', 'SS', 'S', 'H1'),(1,'ABC','ABC BH','SS','S','H2')]
d = [OrderedDict(zip(col,t)) for t in a]
print (d)
元素的列表推导,这些元素是通过将OrderedDict
列表与col
元组列表的每个元素一起压缩而构建的。
结果:
a