【问题标题】:How to a query a set of objects and return a set of object specific attribute in SQLachemy/Elixir?如何在 SQLachemy/Elixir 中查询一组对象并返回一组对象特定属性?
【发布时间】:2010-11-12 12:28:34
【问题描述】:

假设我有一张这样的表:

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

如何查询它以使其返回一组Ticker.ticker

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

添加:我的最终目标是拥有一组当前代码,这样,当新代码不在集合中时,它将被插入到数据库中。我只是在学习如何创建数据库和一般的 sql。任何想法都值得赞赏。

谢谢。 :)

【问题讨论】:

    标签: python sql sqlalchemy


    【解决方案1】:

    不确定您到底在追求什么,但要获得一个包含所有 'Ticker.ticker' 值的数组,您可以这样做:

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

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

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

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

    如果结果是 None 你还没有。所以大家一起,

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

    【讨论】:

    • 这实际上是我现在所拥有的。我只是在想是否有办法在长生不老药而不是列表理解中做到这一点。如果有,它是否比列表理解更有效。
    • 我认为第二行是我需要使用的。谢谢你。当我找到正确的解决方案时,stackoverflow 的约定是什么?
    • 如果您对答案感到满意,请单击其左侧的复选标记图标以接受它。 :)
    猜你喜欢
    • 2022-01-01
    • 2015-04-04
    • 2021-05-05
    • 1970-01-01
    • 2022-07-22
    • 2021-11-06
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多