Python:SQL查询结果到表

时间:2014-02-17 02:35:30

标签: python

我在Python中有SQL查询的结果,我想将其转换为具有适当数据格式的表。

结果现在:

(datetime.datetime(2014, 1, 13, 0, 0), Decimal('6.16'), Decimal('5.95'), Decimal('4.05')),

我希望结果如下:

13/01/14, 6.16, 5.95, 4.05

我试过了:

Data = list(conn.execute(# some query));
Stuff = [];
for row in Data:
Stuff.append([i for i in zip(time.strftime("%d %m %Y", row['day'].timetuple()), float(row['col1']), float(row['col2']), float(row['col3']))]);

但这似乎只压缩1个字符,而不是每个元素用','分隔。有没有办法用分隔符压缩?或者任何替代实现以获得期望的结果。

修改

先前建议的解决方案创建一个列表,其中包含[day,a1,a2,a3],即n x 1 table vs n x 4 table,即day,a1,a2,a3,这是必需的。是否有任何方法可以使用zip或类似的东西来做到这一点?

2 个答案:

答案 0 :(得分:1)

您不需要zipzip需要多个列表并将它们交错

>>> zip('abc', '123')
[('a', '1'), ('b', '2'), ('c', '3')]

只需将数据直接附加到Stuff列表

即可
Data = list(conn.execute(# some query));
Stuff = [];
for row in Data:
    Stuff.append([time.strftime("%d %m %Y", row['day'].timetuple()), float(row['col1']), float(row['col2']), float(row['col3'])])

答案 1 :(得分:0)

Stuff = []
for row in Data:
    Stuff.append([i for i in [row['day'], float(row['a1']), float(row['a2']), float(row['a3'])]]);
相关问题