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

求助:解析含可变数量关键词的JSON文件并格式化输出

问题描述

需要解析一个包含可变数量关键词的JSON文件,典型示例如下:

{"keywords":[{"keyword":"halloween","score":0.9621220167107003},
{"keyword":"pumpkin","score":0.9527655356551675},
{"keyword":"nature","score":0.8530320061364176},
{"keyword":"animal","score":0.7936456829239327}],"status":"ok"}

要求将解析后的关键词格式化为:

,,,"halloween,pumpkin,nature,animal"

关键词条目数量在10到100之间浮动。尝试了以下批处理脚本但未解决问题:

setlocal enabledelayedexpansion
  set keywords=""

  rem Loop through each line of the keywords.txt file
  for /f "skip=1 tokens=2 delims={" %%b in (keywords.txt) do (
    rem Extract the keyword from the current line
    set keyword=%%b
    set keyword=!keyword:"keyword":"!
    set keyword=!keyword:",score":!
    set keyword=!keyword:,!

    rem Add the keyword to the keywords variable
    set keywords=!keywords!,!keyword!
  )
解决方案

原脚本的关键词提取逻辑不严谨,且未处理最终输出格式,以下是修正后的批处理脚本:

@echo off
setlocal enabledelayedexpansion

set "keywords="

rem 精准定位包含关键词的行,提取目标内容
for /f "tokens=2 delims=:" %%a in ('findstr /C:"\"keyword\":\"" keywords.txt') do (
    rem 清理关键词中的引号和多余逗号
    set "temp=%%a"
    set "temp=!temp:"=!"
    set "temp=!temp:,=!"
    rem 拼接关键词,避免开头出现多余逗号
    if defined keywords (
        set "keywords=!keywords!,!temp!"
    ) else (
        set "keywords=!temp!"
    )
)

rem 输出要求的格式内容
echo,,,"%keywords%"

endlocal

关键改进说明:

  • 用findstr精准筛选含关键词的行,避免处理无关内容
  • 通过分隔符截取+字符替换的组合,准确提取纯关键词文本
  • 拼接时判断变量状态,避免开头多出无用逗号
  • 直接输出符合要求的,,,"关键词列表"格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:25:26