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

Python3如何校验JSON的items数组中是否存在传入的指定name值

解决方案

核心逻辑说明

  • 接口返回的JSON反序列化后是标准Python字典,直接通过键名items即可访问目标数组,不需要遍历所有顶层键值对
  • 命令行传入的参数通过sys.argv获取,索引0为当前脚本文件名,第一个自定义参数从索引1开始取
  • 匹配逻辑只需要遍历items数组内的每个字典,校验其name字段值是否等于传入的目标值即可

完整实现代码

import sys
import json

# 保留原有接口请求逻辑
res = conn.getresponse()
data = res.read()
outputdata = data.decode("utf-8")
outputdata1 = json.loads(outputdata)

# 参数校验:判断是否传入了待匹配的name值
if len(sys.argv) < 2:
    raise ValueError("运行时必须传入待匹配的name参数,示例:python script.py pythontest34")
target_name = sys.argv[1]

# 访问items层级并做匹配,any函数遇到第一个匹配项就会返回True,性能更好
match_result = any(item.get('name') == target_name for item in outputdata1.get('items', []))

# 最终结果存储在match_result变量中,匹配成功为True,失败为False
print(match_result)

运行方式

在命令行执行脚本时,把要查找的name值拼在命令后面即可,例如要查找pythontest34是否存在:

python your_script_name.py pythontest34

执行后会直接打印匹配结果True,如果传入不存在的name值则返回False。

代码说明

  • 用dict.get()方法取值做了容错,即使接口返回没有items键、或者某个item没有name字段,也不会抛出KeyError异常
  • 用内置any()函数替代手写循环判断,写法更简洁,且遍历到第一个匹配项就会终止遍历,比全量遍历效率高
  • 加了参数长度校验,避免漏传参数导致的索引报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:48:17