资讯详情

Linux 命令行下用 jq 处理 LLM 返回的 JSON 流:5 个实战技巧jq

📅 2026/9/15 6:19:28 | 华诺云谱 👁 阅读
Linux 命令行下用 jq 处理 LLM 返回的 JSON 流:5 个实战技巧jq
为什么 AI 应用开发者要掌握 jq在开发 LLM 应用时你经常需要处理 API 返回的 JSON 数据——无论是提取choices[0].message.content还是解析流式响应中的增量内容。虽然 Python 脚本能搞定但在快速调试、日志分析或管道处理时jq是效率最高的命令行工具。下面这些技巧能让你少写几十行 Python。技巧一用-r输出纯文本去掉 JSON 引号原因默认jq输出 JSON 格式字符串会带引号不方便直接保存或重定向。示例echo {content:Hello, AI} | jq -r .content # 输出Hello, AI技巧二用--stream处理流式 JSON如 SSE 数据原因OpenAI 的流式响应是多个 JSON 对象连续输出jq默认只能解析单个 JSON。用--stream可以逐条解析。示例curl -N https://api.openai.com/v1/chat/completions \ -H Authorization: Bearer $OPENAI_API_KEY \ -H Content-Type: application/json \ -d {model:gpt-4,stream:true,messages:[{role:user,content:Hi}]} \ | jq --stream select(length2 and .[0][0]choices) | .[1][0].delta.content // empty这段命令会逐行输出增量文本方便实时查看。技巧三用slurp合并多个 JSON 对象原因当你需要把多行 JSON 合并成一个数组时比如从日志文件分析slurp可以一次性读取所有输入。示例cat responses.jsonl | jq -s . combined.json这样就把每行一个 JSON 变成了一个 JSON 数组。技巧四用map和select批量提取字段原因在处理批量结果时你可能只想提取特定字段或过滤条件。示例cat results.json | jq [.[] | select(.score 0.8) | {id, text: .message.content}]这会输出所有分数大于 0.8 的记录并只保留id和message.content字段。技巧五用json或tsv格式化输出原因当你想把 JSON 转换成其他格式如 CSV 或 TSV用于表格处理时json和tsv非常有用。示例cat data.json | jq -r [.id, .content] | tsv data.tsv这样就能用 Excel 或awk直接处理了。小结掌握这些 jq 技巧后你可以直接在命令行中快速解析、过滤和转换 LLM 返回的数据提高调试效率。建议把常用命令写成 shell 别名比如alias jqstreamjq --stream ...。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。