如何使用jq提取JSON文件中results数组指定字段输出到另一文件
解决方案
单行jq命令实现
你之前的写法出错是因为不需要指定索引[i],jq原生支持通过[]遍历数组所有元素,正确命令如下:
jq '[.results[]."com.src.main.client.details"]' 原文件.json > 输出文件.json
命令说明:
- 外层方括号
[]会把所有提取到的内容包裹为一个新数组,完全匹配你要求的输出格式 .results[]遍历results数组的每一项- 字段名包含特殊符号,用引号包裹的写法是正确的
- 不需要加
-c参数时,默认输出格式化的JSON结构,和你给出的预期输出样式一致;如果需要压缩成单行JSON,可以加上-c参数。
Python脚本实现
如果后续还要扩展处理逻辑,可以用Python脚本完成,逻辑如下:
- 读取原始JSON文件内容
- 遍历results数组,逐个提取
com.src.main.client.details字段的值 - 将提取后的列表写入新的JSON文件
代码示例:
import json # 读取原始JSON with open("input.json", "r", encoding="utf-8") as f: raw_data = json.load(f) # 提取目标字段 output_data = [item["com.src.main.client.details"] for item in raw_data["results"]] # 写入新文件 with open("output.json", "w", encoding="utf-8") as f: json.dump(output_data, f, indent=2, ensure_ascii=False)
内容的提问来源于stack exchange,提问作者sagar verma
相关产品推荐
相关产品推荐

