peewee查询数据库返回数据如何快速高效转Dataframe的方法,求大家指点
找到方法了
def query_dataframe(self, symbol: str, exchange: Exchange, interval: Interval):
pass
import pandas as pd
方法实现
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
找到了,自定义Field.....
peewee创建mysql数据库Datetime无法精确到毫秒,保存tick数据会丢失记录。
论坛有人直接修改了peewee代码来实现了,查了peewee资料也没有找到正确的方法创建数据库表格时保证Datetime精确到毫秒。
有没有哪个大哥知道,不通过修改peewee代码可以解决的方式。