You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Django查询中使用Aggregate(Max())时如何提取实际数值

解决Django聚合查询结果提取数值的问题

Django的aggregate()方法返回的是字典类型,而非模型实例,所以你不能用点语法(比如.latitude)访问值。要提取实际数值,有几种简单可行的方法:

  • 直接通过字典键取值
    聚合结果的默认键格式是字段名__聚合函数名,这里就是latitude__max,直接用字典索引获取即可:

    max_latitude_value = max_latitude['latitude__max']
    print(max_latitude_value)  # 输出 51.6639002
    
  • 给聚合结果指定自定义键名
    要是觉得默认键名不够直观,可以在Max里通过name参数自定义键,后续用自定义键取值:

    from django.db.models import Max
    
    max_latitude = Model.objects.aggregate(max_lat=Max('latitude'))
    max_latitude_value = max_latitude['max_lat']
    
  • 安全取值(处理空结果场景)
    如果查询可能返回空结果(比如数据库中无对应数据),可以用dict.get()方法避免KeyError,还能指定默认值:

    max_latitude_value = max_latitude.get('latitude__max', 0)  # 第二个参数为可选默认值
    

内容的提问来源于stack exchange,提问作者PhilM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:22:06