首页 > 解决方案 > Peewee 用奇怪的括号弄乱了键名

问题描述

怎么会有这样的查询:

latest_dates = EquityModel.select(EquityModel.symbol, fn.MAX(EquityModel.date)).where(EquityModel.symbol << symbols).group_by(EquityModel.symbol)
    for latest_date in latest_dates.dicts():
        print("{:s} - {:d}".format(str(latest_date['date']), latest_date['symbol']))

鉴于两者都存在KeyError于?'date''symbol'EquityModel

如果我latest_date在调试器中分析,它看起来像这样:

{'date")': datetime.datetime(something), 'symbol': 3}

如果我尝试访问latest_dates['date")']它就可以了!

这里到底发生了什么?为什么date变成date")?

标签: pythonormpeewee

解决方案


不确定发生了什么,您可以使用显式分配别名:fn.MAX(EquityModel.date).alias('date')

EquityModel.date 是计算字段,还是普通列?


推荐阅读