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
相关产品推荐
相关产品推荐

