如何使用JQ将JSON指定字段输出为单行逗号分隔格式?
使用JQ提取JSON字段为逗号分隔格式
需求说明
从给定的JSON数据中,提取以下字段并以每行逗号分隔的格式输出:
- 每个
result元素的id - 每个
result元素的redirect.source_url - 每个
result元素的redirect.target_url - 顶层的
result_info.cursors.after(每个结果行都携带该值)
实现命令
如果需要输出带引号的标准CSV格式,使用以下命令:
.result_info.cursors.after as $after | .result[] | [.id, .redirect.source_url, .redirect.target_url, $after] | @csv
如果不需要引号,直接输出纯逗号分隔文本,使用:
.result_info.cursors.after as $after | .result[] | [.id, .redirect.source_url, .redirect.target_url, $after] | join(",")
命令解释
.result_info.cursors.after as $after:将顶层的游标值存储为变量$after,确保每个结果行都能引用该值.result[]:遍历result数组中的每一个对象元素[字段1, 字段2, ...]:将需要提取的字段组合成一个数组@csv/join(","):将数组转换为逗号分隔的文本格式
输出示例(纯逗号分隔版本)
fcf9728ed6e94078bae9ffe200bf1054,www.1234.com/acssurgerynews/article/248345/transgender-health/detransitioners-received-poor-evaluation-when,https://www.1234.com/viewarticle/962270,equIy9ku2FDvBVLy0avqNewCdepOQiaIaSilEIhBNwhHDIkcF5EjJkYqPwqeewvR5Rb6UO4LB5moBKoO9puoiyJ9QY_bidbcFtbpp60QzYEl_9Hls0jD_2oINTM_CWJPCBTvzmVu7LlUCNTB_UxXE-Ox6h8vuhE fac3ab84691b44219c270a5dd073e374,www.1234.com/advanced-and-metastatic-breast-cancer/article/248363/breast-cancer/liquid-biopsy-metastatic-breast,https://www.1234.com/viewarticle/942277,equIy9ku2FDvBVLy0avqNewCdepOQiaIaSilEIhBNwhHDIkcF5EjJkYqPwqeewvR5Rb6UO4LB5moBKoO9puoiyJ9QY_bidbcFtbpp60QzYEl_9Hls0jD_2oINTM_CWJPCBTvzmVu7LlUCNTB_UxXE-Ox6h8vuhE 0ae189027c574eedac22f854b4676568,www.1234.com/advanced-and-metastatic-breast-cancer/article/249807/breast-cancer/evolving-her2-metastatic-breast,https://www.1234.com/viewarticle/963856,equIy9ku2FDvBVLy0avqNewCdepOQiaIaSilEIhBNwhHDIkcF5EjJkYqPwqeewvR5Rb6UO4LB5moBKoO9puoiyJ9QY_bidbcFtbpp60QzYEl_9Hls0jD_2oINTM_CWJPCBTvzmVu7LlUCNTB_UxXE-Ox6h8vuhE
内容的提问来源于stack exchange,提问作者user2193480
相关产品推荐
相关产品推荐

