我使用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))
答案 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()