Есть ли элегантный способ доступа к столбцам таблицы вместо строк с помощью sqlalchemy? - PullRequest
1 голос
/ 10 марта 2011

Для анализа иногда лучше получить доступ к столбцам результата выбора вместо строк. Допустим, мы хотим построить график напряжения определенной точки записи (rp), и данные сохраняются в таблице * записей *, как это

__________________________________
|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)

Что бы вы предложили?

1 Ответ

2 голосов
/ 10 марта 2011

SQLAlchemy позволяет запрашивать только указанные столбцы.Все, что вам нужно, это транспонировать полученную матрицу .Если предположить, что 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...