删除 JSON 数组对象中的某个字段

我需要将 JSON 字符串中的一个对象属性删除,如果手动删除,又累又无聊。

一个 Python 脚本搞定。

import json

def remove_filename_and_save(input_path, output_path):
    """
    从JSON数组中移除所有对象的filename属性并保存到新文件

    Args:
        input_path: 输入JSON文件路径
        output_path: 输出JSON文件路径
    """
    try:
        # 读取输入JSON文件
        with open(input_path, 'r', encoding='utf-8') as f:
            data = json.load(f)

        # 检查是否是数组
        if not isinstance(data, list):
            print("错误:输入JSON不是数组对象")
            return False

        # 处理每个对象
        processed_data = []
        for item in data:
            if isinstance(item, dict):
                # 创建新对象,排除filename属性
                new_item = {k: v for k, v in item.items() if k != 'filename'}
                processed_data.append(new_item)
            else:
                processed_data.append(item)  # 非字典元素保持不变

        # 写入输出文件
        with open(output_path, 'w', encoding='utf-8') as f:
            json.dump(processed_data, f, ensure_ascii=False, indent=2)

        print(f"成功处理并保存到 {output_path}")
        return True

    except FileNotFoundError:
        print(f"错误:输入文件 {input_path} 未找到")
        return False
    except json.JSONDecodeError:
        print(f"错误:输入文件 {input_path} 不是有效的JSON格式")
        return False
    except Exception as e:
        print(f"处理文件时出错: {e}")
        return False

if __name__ == "__main__":
    # 文件路径配置
    input_json = "/data/data.json"       # 输入文件路径
    output_json = "/data/data-temp.json" # 输出文件路径

    # 执行处理
    if remove_filename_and_save(input_json, output_json):
        print(f"操作成功完成,结果已保存到 {output_json}")
    else:
        print("操作失败,请检查错误信息")

可以基于该脚本进行扩展。