代码之家  ›  专栏  ›  技术社区  ›  Saturnix

用奇怪的括号把键名弄乱

  •  0
  • Saturnix  · 技术社区  · 7 年前

    如何使用这样的查询:

    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") ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   coleifer    7 年前

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

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