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

如何将字典列表转为值列表?MongoDB分类提取用于HTML导航栏

解决方法:从字典列表提取分类值生成纯列表

嘿,这事儿其实挺简单的,我来给你捋清楚具体步骤:

首先,你已经把MongoDB返回的游标转成了字典列表,假设这个列表长这样:

categories_list = [
    {'category': '电子产品'},
    {'category': '服装'},
    {'category': '家居用品'},
    {'category': '电子产品'}  # 存在重复分类的情况
]

方法1:列表推导式(最推荐,简洁易读)

直接遍历每个字典,取出category字段对应的值就行:

# 先确保游标已转为列表
categories_list = list(categories)
# 提取所有分类值
category_values = [item['category'] for item in categories_list]

运行后category_values就会变成['电子产品', '服装', '家居用品', '电子产品'],完全符合你要的纯值列表需求。

方法2:处理可能缺失的category字段(避免报错)

如果担心有些产品文档可能没有category字段,可以用get()方法做兼容,还能指定默认值:

category_values = [item.get('category', '未分类') for item in categories_list]

这样遇到没有category的文档,会自动用未分类填充,不会触发KeyError报错。

额外实用技巧:生成去重的分类列表(导航栏常用)

导航栏一般需要唯一的分类,如果你要去掉重复项,可以用集合去重再转回列表:

unique_category_values = list({item['category'] for item in categories_list})

结果就是['电子产品', '服装', '家居用品'](集合是无序的,如果要保留分类第一次出现的顺序,可以用下面的写法):

unique_category_values = []
for item in categories_list:
    cat = item['category']
    if cat not in unique_category_values:
        unique_category_values.append(cat)

这样就能完美保留原有的分类出现顺序啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:27:56