有描述关键字的元素数量可变的json文件,下面是典型的例子:
{"keywords":[{"keyword":"halloween","score":0.9621220167107003},
{"keyword":"pumpkin","score":0.9527655356551675},
{"keyword":"nature","score":0.8530320061364176},
{"keyword":"animal","score":0.7936456829239327}],"status":"ok"}
脚本应该解析这个json,我需要得到一行关键字,格式如下:
,,,"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!
)
但这没有任何帮助
2条答案
按热度按时间qcuzuvrc1#
请注意,如果文件名不包含空格之类的分隔符,则可以省略
usebackq
和%filename1%
周围的引号。读每一行;用逗号替换每个冒号和各种括号。结果是
line
中的一个简单的逗号分隔列表。一些元素可能会被引起来。使用一个简单的
for
迭代每行的所有元素,如果去掉引号并重新报价的元素是"keyword"
,则将snagnext
标志设置为y
。定义
snagnext
时出现的下一个元素累积到words
列表中。提示:使用
set "var=value"
来设置字符串值--这样可以避免由尾随空格引起的问题。不要指定"
或终止反斜杠或空格。从元素构建路径名--与直觉相反,这可能会使过程更容易。如果使用语法set var="value"
,那么引号将成为指定值的一部分。2hh7jdfx2#
要解析JSON,请使用PowerShell的帮助:
下面是一个简单的单行batch-file示例: