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

如何定位JSON中valA最小值对应的name并实现数值递增?

找到JSON数组中valA最小值对应的人员并更新值

需求说明

现有file.json文件存储JSON数组,需要实现以下逻辑:

  • 定位数组中valA值最小的人员
  • 获取该人员的name字段
  • 将该人员的valA值递增1
  • 输出格式如:Number 2 belongs to personA.

完整Python实现代码

import json

# 读取JSON文件内容
with open('file.json', 'r') as f:
    people_list = json.load(f)

# 计算valA的最小值
min_vala = min(person['valA'] for person in people_list)

# 找到第一个匹配最小值的人员(若有多个最小值,可按需调整逻辑)
target_person = next(p for p in people_list if p['valA'] == min_vala)

# 输出指定格式的结果
print(f"Number {min_vala} belongs to {target_person['name']}.")

# 递增目标人员的valA值
target_person['valA'] += 1

# 将更新后的数据写回文件
with open('file.json', 'w') as f:
    json.dump(people_list, f, indent=4)

代码关键点说明

  1. 文件读写:用json.load()把JSON文件转成Python列表,修改完成后用json.dump()写回,indent=4保证输出的JSON格式易读。
  2. 最小值匹配:先用min()拿到所有valA的最小值,再通过生成器表达式找到第一个对应人员;如果存在多个valA同为最小值的情况,可改用列表推导式收集所有匹配项,再批量处理。

多最小值场景的扩展处理

如果需要处理多个valA同为最小值的人员,可修改代码如下:

# 收集所有valA为最小值的人员
target_people = [p for p in people_list if p['valA'] == min_vala]
# 遍历处理所有匹配人员
for person in target_people:
    print(f"Number {min_vala} belongs to {person['name']}.")
    person['valA'] += 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:18:13