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

使用Python验证JSON数组中所有对象的指定键是否存在

JSON数组键验证失败的原因与修复方案

问题场景

你有如下JSON数组数据:

data = """ [
        {
            "id": 1,
            "name": "crm/index",
            "description": "CRM/Dashboard"
        },
        {
            "id": 2,
            "name": "crm/index/with_search",
            "description": "CRM/Global Search"
        }
    ]"""

想要验证数组里的每个对象都包含id、name、description三个键,但用以下代码验证时,执行了else分支,提示键不存在:

import json  # 注:原代码漏了这行,直接运行会报错

student = json.loads(data)
if "id" in student:
   print("Key exist in JSON data")
else:
   print("Key doesn't exist in JSON data")

错误原因

json.loads(data)解析后得到的是一个列表(数组),里面的每个元素才是包含id等键的字典。你直接判断"id"是否在这个列表里,相当于检查列表的元素是不是字符串"id",显然不成立,所以走到了else分支。

正确的验证代码

需要遍历列表中的每个对象,逐个检查是否包含所需的三个键:

import json

data = """ [
        {
            "id": 1,
            "name": "crm/index",
            "description": "CRM/Dashboard"
        },
        {
            "id": 2,
            "name": "crm/index/with_search",
            "description": "CRM/Global Search"
        }
    ]"""

items = json.loads(data)
required_keys = {"id", "name", "description"}

all_valid = True
for item in items:
    if not required_keys.issubset(item.keys()):
        all_valid = False
        print(f"对象 {item} 缺少必要的键")

if all_valid:
    print("所有对象都包含id、name、description三个键")
else:
    print("存在对象缺少必要的键")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:06:24