使用web.py有效地使用查询结果

时间:2013-04-19 07:27:43

标签: mysql web.py

我使用web.py来管理我的Web应用程序并使用MySQL作为数据库。我创建一个原始查询并获得结果,然后将其转换为列表并迭代它。我需要在Arrays(或Numpy数组)中推送检索到的列,然后使用Matplotlib进行绘图。一切正常但我不确定我使用的方法是否最有效? 代码是:

retrieved_data=list(db.query(query))
LEN=len(retrieved_data)
x=[0]*LEN
y=[0]*LEN
X=[None]*LEN
for i in range(0,LEN):
    x[i]=retrieved_data[i]["timestamp"]
    y[i]=retrieved_data[i][parameter]
    X[i]=datetime.datetime.fromtimestamp(x[i],pytz.timezone(TIMEZONE))

1 个答案:

答案 0 :(得分:2)

如果只需要迭代一次,就不必转换db.query的结果。所以你的特定例子可以稍微简化一下。

x, y, X = [], [], []
for item in db.query(query):
    x.append(item.timestamp)
    y.append(item[parameter])
    X.append(datetime.datetime.fromtimestamp(item.timestamp,
                                             pytz.timezone(TIMEZONE))

或者,如果您需要在同一结果上多次迭代,可以使用.list()方法将其转换为列表。

retrieved_data = db.query(query).list()