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

Python如何删除嵌套JSON结构中的指定键值对?

Python删除嵌套JSON中指定键的实现方法

核心逻辑:Python中操作JSON本质是操作解析后的字典对象,只需要完成「JSON转字典→删除目标键→(可选)字典转回JSON」三个步骤即可。

前置步骤:解析JSON为Python字典

调用API拿到的返回值一般是JSON字符串,首先用标准库json解析为字典:

import json

# 假设api_resp是你调用API拿到的JSON字符串
api_resp = '''
{
    "data": {
        "type": "regulations",
        "id": "1234",
        "attributes": {
            "name": "My Own Regulations",
            "description": "",
            "created_at": "2021-10-20T15:27:57.834Z",
            "updated_at": "2021-10-20T15:27:57.834Z",
            "external_id": null,
            "source": null,
            "locked": false
        }
    }
}
'''
# 解析为字典
resp_dict = json.loads(api_resp)

方案1:固定结构下直接删除目标键

如果API返回结构固定,要删除的created_at、updated_at明确在data.attributes层级下,可以直接操作对应节点:

# 直接删除指定键
del resp_dict["data"]["attributes"]["created_at"]
del resp_dict["data"]["attributes"]["updated_at"]

# 操作完成后如果需要转回JSON字符串,用dumps方法
processed_json = json.dumps(resp_dict, indent=4, ensure_ascii=False)
print(processed_json)

方案2:通用递归删除(不限嵌套层级)

如果不确定目标键的所在层级,或者需要批量删除多个指定键(比如同时删除所有created_at、updated_at、external_id),可以用递归函数遍历所有字典节点删除:

def delete_keys_from_dict(d: dict, keys_to_delete: list):
    # 遍历字典键的副本,避免遍历过程中删除键导致报错
    for key in list(d.keys()):
        value = d[key]
        # 如果当前值是字典,递归处理
        if isinstance(value, dict):
            delete_keys_from_dict(value, keys_to_delete)
        # 如果当前键在待删除列表中,移除该键值对
        if key in keys_to_delete:
            del d[key]

# 调用示例:批量删除created_at、updated_at两个键
delete_keys_from_dict(resp_dict, ["created_at", "updated_at"])

# 转回JSON字符串
processed_json = json.dumps(resp_dict, indent=4, ensure_ascii=False)
print(processed_json)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:24:06