1

我正在使用 web.py 来管理我的 Web 应用程序并使用 MySQL 作为数据库。我进行原始查询并获取结果,然后将其转换为列表并对其进行迭代。我需要将检索到的列推送到数组(或 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))
4

1 回答 1

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()
于 2013-04-19T15:16:29.147 回答