2011-03-10 39 views
1

對於分析,有時更好地訪問選擇結果的列而不是行。比方說,我們要繪製一個特定的記錄點的電壓軌跡(RP)和數據存儲在表* 錄音 *這樣有沒有一種優雅的方式來訪問表「列」,而不是使用sqlalchemy的行?

__________________________________ 
|rp_key | time  | value_mV | 
---------------------------------- 
| 1  | 1  | -65 | 
---------------------------------- 
| 1  | 2  | -64.4 | 
---------------------------------- 
| 1  | 3  | -65.3 | 
---------------------------------- 
| 2  | 1  | -67.9 | 
---------------------------------- 
| 2  | 2  | -68.0 | 
---------------------------------- 

現在我想繪製這樣的:

import sqlalchemy as sa 
import matplotlib.pyplot as plt 
# ... 
res = session.query(Recording).filter_by(rp_key=1).all() 
# HERE: elegant sqlalchemy-way of accessing the columns of the result 
plt.plot(time, value_mV) 

你會提出什麼建議?

回答

2

SQLAlchemy只允許查詢指定的列。所有你需要的是transpose resulting matrix。假設Recording是映射類,代碼可能如下所示:

rows = session.query(Recording.time, Recording.value_mV).filter_by(rp_key=1).all() 
time, value_mV = zip(*rows) 
plt.plot(time, value_mV) 
相關問題