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

Python中修改嵌套JSON键:移除所有嵌套的"v"键

批量扁平化JSON中的"v"/"value"嵌套结构

方法一:Python脚本(通用跨平台)

递归遍历整个JSON结构,自动识别并替换所有{"v": 值}或{"value": 值}的单键嵌套结构:

import json

def flatten_nested(obj):
    if isinstance(obj, dict):
        # 匹配仅含"v"或"value"单个键的字典
        if len(obj) == 1:
            key = next(iter(obj))
            if key in ("v", "value"):
                return obj[key]
        # 递归处理每个键值对
        return {k: flatten_nested(v) for k, v in obj.items()}
    elif isinstance(obj, list):
        # 递归处理数组元素
        return [flatten_nested(item) for item in obj]
    # 基础类型直接返回
    return obj

# 处理文件示例
if __name__ == "__main__":
    # 读取原始JSON
    with open("input.json", "r", encoding="utf-8") as f:
        raw_data = json.load(f)
    
    # 执行扁平化处理
    cleaned_data = flatten_nested(raw_data)
    
    # 写入格式化后的结果
    with open("output.json", "w", encoding="utf-8") as f:
        json.dump(cleaned_data, f, indent=4)

使用步骤:

  • 将你的JSON内容保存为input.json
  • 运行上述脚本,生成的output.json就是处理后的结果

方法二:jq命令行工具(适合Linux/macOS/Windows WSL)

如果熟悉命令行,用jq可以快速完成批量处理,无需写脚本:

jq 'walk(if type == "object" and keys == ["v"] then .v elif type == "object" and keys == ["value"] then .value else . end)' input.json > output.json

解释:walk函数递归遍历JSON的每个节点,遇到仅含v或value键的对象时,直接替换为对应的值,其余结构保持不变。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:03:35