我在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或类似的东西来做到这一点?
答案 0 :(得分:1)
您不需要zip
。 zip
需要多个列表并将它们交错
>>> 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'])]]);