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

Python如何按条件删除嵌套字典中object-name含apple的子字典?

问题原因

你遇到的两个问题根源:

  • 直接遍历列表同时删除元素时,列表长度会动态变化,后续元素的索引会前移,导致部分符合条件的元素被跳过漏删
  • item.clear()只是清空字典对象的内容,并不会把这个元素从所属的seq_key列表里移除

正确实现代码

import json 

with open(r"my_file.json", encoding='utf-8') as f:
    abc = json.load(f)

# 遍历item数组里的每一个元素
for item in abc['item']:
    # 直接用列表推导式生成过滤后的新seq_key,替换原列表
    item['seq_key'] = [
        entry for entry in item['seq_key']
        if not entry['object-name'].startswith('apple:')
    ]

# 如果需要将处理后的结果写回文件,可添加下面代码
with open(r"processed_file.json", 'w', encoding='utf-8') as f:
    json.dump(abc, f, indent=4, ensure_ascii=False)

代码说明

  • 用列表推导式直接过滤掉object-name前缀为apple:的条目,生成新的列表直接替换原seq_key,完全避开了遍历删元素的索引错位问题
  • 用startswith('apple:')判断前缀比split(':')[0]更高效,也避免了部分没有:的字符串导致的索引错误问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:08