peewee查询数据库返回数据如何快速高效转Dataframe的方法,求大家指点

找到方法了

  1. BaseDatabase 增加接口
    def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval):
     pass
  2. 实现类中添加pandas
    import pandas as pd
  3. 方法实现

     def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval):
         s: ModelSelect = DbBarOverview.select().where(
             (DbBarOverview.symbol == symbol) & (DbBarOverview.exchange == exchange.value) & (
                         DbBarOverview.interval == interval.value))
         # print(s.sql())
         overviews: List[BarOverview] = []
         for overview in s:
             overview.exchange = Exchange(overview.exchange)
             overview.interval = Interval(overview.interval)
             overviews.append(overview)
    
         if len(overviews) < 1:
             return None
    
         code = overviews[0]
         ss: ModelSelect = (
             DbBarData.select().where(
                 (DbBarData.symbol == symbol)
                 & (DbBarData.exchange == exchange.value)
                 & (DbBarData.interval == interval.value)
                 & (DbBarData.datetime >= code.start)
                 & (DbBarData.datetime <= code.end)
             ).order_by(DbBarData.datetime)
         )
         sqlpm = ss.sql()
         df = pd.read_sql(sqlpm[0], db.connection(), params=sqlpm[1])
         return df