当我运行以下命令时:
yt-dlp --dump-json -a list.txt | jq -cr '{ 日期:.upload_date | (.[0:4] + "-" + .[4:6] + "-" + .[6:8]),ID:.id,标题:.fulltitle, 章节:.chapters[] | {标题} |有(“标题”)|加入(“,”)}'
它给了我一个错误:
jq:错误(at:1):无法迭代 null(null)
如何从那些真正有章节的视频中提取章节? (因为我认为找不到章节时会卡住)。
如果
.chapters
不存在,则计算结果为 null
,并且 .chapters[]
将失败并出现错误 Cannot iterate over null (null)
。
在这种情况下,根据您想要的结果值,您可以将关键部分括在括号中,使用错误抑制运算符
?
来消除错误,并使用替代运算符 //
提供替代方案,例如(…)? // null
。
jq -c '{
Date: .upload_date | (.[0:4] + "-" + .[4:6] + "-" + .[6:8]),
ID: .id,
Title: .fulltitle,
Chaps: (.chapters | (.[] | {title} | has("title") | join(", "))? // null)
}'