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

如何从含相同键的Django QuerySet中提取值并生成列表?

提取QuerySet中字典的'ans'值到列表的方法

你之前的错误核心在于:dic是Django的QuerySet对象,不是单个字典,所以不能直接调用items()(这是字典的专属方法)。要提取所有'ans'对应的值,有两种简洁可行的方案:

方案1:列表推导式遍历QuerySet

直接遍历QuerySet里的每个字典元素,取出对应'ans'的值:

dic = QuesModel.objects.values("ans").distinct()
ans_list = [item['ans'] for item in dic]
print(ans_list)

输出示例:

['antwort1', 'answer2', 'besitzt als Modelle elemente verschiedene Ereignistypen.', 'als Nachrichten und Datenobjekte e dargestellt.', '2 ist eine rationale Zahl', 'x hat den Wert 55', '']

方案2:用Django内置的values_list()(更高效)

如果不需要中间的字典结构,直接用values_list()配合flat=True,可以让数据库直接返回值列表,避免构造字典的额外开销:

# 若需要严格的列表类型,套一层list();QuerySet本身也支持迭代
ans_list = list(QuesModel.objects.values_list("ans", flat=True).distinct())

这个方法更贴合Django ORM的优化逻辑,性能比先取字典再转换更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:15:32