1

Web アプリケーションの管理に web.py を使用し、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 を 1 回だけ反復する必要がある場合は、結果を変換する必要はありません。したがって、特定の例は少し単純化できます。

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 に答える