如何在SQLachemy / Elixir中查询一组对象并返回一组特定于对象的属性?

时间:2009-07-21 02:04:41

标签: python sql sqlalchemy

假设我有一个像这样的表:

class Ticker(Entity):
    ticker = Field(String(7))
    tsdata = OneToMany('TimeSeriesData')
    staticdata = OneToMany('StaticData')

我如何查询它以便它返回一组Ticker.ticker

我深入研究了文档,似乎select()是可行的方法。但是我对sqlalchemy语法不太熟悉。任何帮助表示赞赏。

ADDED:我的最终目标是拥有一组当前的自动收报机,当新的自动收报机不在套装中时,它将被插入到数据库中。我只是学习如何创建一个数据库和SQL。任何想法都表示赞赏。

感谢。 :)

1 个答案:

答案 0 :(得分:0)

不确定你究竟是什么,但要获得一个包含所有'Ticker.ticker'值的数组,你会这样做:

[instance.ticker for instance in Ticker.query.all()]

你真正想要的可能是Elixir getting started tutorial - 这很好看,看看吧!

更新1:由于您有数据库,因此查明是否需要插入新的潜在股票代码的最佳方法是查询数据库。这比将所有代码读入内存和检查要快得多。要查看值是否存在,请尝试以下操作:

Ticker.query.filter_by(ticker=new_ticker_value).first()

如果结果为“无”,则表示尚未使用。总而言之,

if Ticker.query.filter_by(ticker=new_ticker_value).first() is None:
    Ticker(ticker=new_ticker_value)
    session.commit()