python - 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")
?
解决方案
不确定发生了什么,您可以使用显式分配别名:fn.MAX(EquityModel.date).alias('date')
。
EquityModel.date 是计算字段,还是普通列?
推荐阅读
- swift - How to update ManagedObjectContext in environment later
- javascript - Unable to launch discord bot due to invalid token
- reactjs - × TypeError:无法读取未定义的属性“路径名”
- mysql - Setup SSL on remote MySQL server for mobile app
- java - How to get rid of text outline on JButton
- android - 如何调试未连接到 Android x86 AVD 的 Visual Studio 2019
- java - 混淆代码中的未定义方法错误
- r - R 仅在字符串中大写罗马数字
- reactjs - NextAuth.js 用于使用 Okta 进行身份验证
- pygears - PyGears 重新排序位