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

如何基于JSON文件阈值过滤字典列表并生成指定输出

问题解决:根据年龄阈值过滤人员数据

需求说明

  • 输入人员数据:
    output = [{'name' : 'andres', 'age': 10},
              {'name' : 'paul', 'age' :20}]
    
  • 阈值配置JSON结构:
    {"NAMES":['andres', 'paul'], "THRESHOLD":{'andres':14, 'paul': 16}}
    
  • 预期输出:
    1. 符合条件的姓名-年龄字典:{'paul':20}
    2. 符合条件的姓名列表:['paul']

原代码问题

原代码存在多处错误:

  1. 键名拼写错误:THESHOLD 应为 THRESHOLD,且字符串未正确闭合(缺少右引号)
  2. 列表推导式语法混乱,逻辑不清晰,未正确遍历人员数据并判断条件

修正后的代码实现

先确保已通过json.load()将配置文件加载到json_data变量中,以下是完整实现:

import json

# 模拟加载JSON配置文件
json_data = {"NAMES":['andres', 'paul'], "THRESHOLD":{'andres':14, 'paul': 16}}
# 输入的人员数据列表
output = [{'name' : 'andres', 'age': 10},
          {'name' : 'paul', 'age' :20}]

# 提取阈值字典
thresholds = json_data['THRESHOLD']

# 生成符合条件的姓名-年龄字典
filtered_dict = {}
for person in output:
    name = person['name']
    age = person['age']
    if name in thresholds and age >= thresholds[name]:
        filtered_dict[name] = age

# 生成符合条件的姓名列表
filtered_list = [p['name'] for p in output if p['name'] in thresholds and p['age'] >= thresholds[p['name']]]

# 输出结果
print("姓名-年龄字典:", filtered_dict)
print("姓名列表:", filtered_list)

运行结果

姓名-年龄字典: {'paul': 20}
姓名列表: ['paul']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:48:22