我正在尝试将看起来像https://digitalcollections.ohsu.edu/api/items/11801的JSON转换为带有分号的多行分隔符的选择性制表符分隔格式。我可以选择所需的字段,并以制表符分隔的格式获取它们。
但是,我仍然无法获得多值字段,而使用分号分隔符将其连接到单个字段中,而又不会产生超级混乱。例如,
jq '.element_texts[] | (select(.element.name=="Title") | .text), (select(.element.name=="Subject") | .text)'
输出我需要的字段。但是我无法将与此返回的3个主题转换为我可以加入的3个项目的数组-我总是得到3个单独的字符串。我可以通过完成
jq '(.element_texts[] | (select(.element.name=="Title") | .text), (select(.element.name=="Date") | .text)), ([.element_texts[] | (select(.element.name=="Subject") | .text)] | join(";"))'
但是我觉得必须有一个更简单,更好的方法,但是我看不到它是什么
答案 0 :(得分:0)
使用指示的输入,以下过滤器将产生输出,如下所示:
.element_texts
| [(.[]
| ((select(.element.name=="Title"),
(select(.element.name=="Date")))
| .text)),
(map(select(.element.name=="Subject") | .text)
| join(";") ) ]
| @tsv
Esther Pohl Lovejoy, M.D. 1894 Lovejoy, Esther Clayson Pohl, M.D., 1869-1967\r\n;Physicians, Women;Portraits