【发布时间】:2021-05-22 10:07:56
【问题描述】:
我有一个如下的 JSON 数组:
[
{
"key" : "Name",
"value" : "John"
},
{
"key" : "City",
"value" : "New York"
},
{
"key" : "Country",
"value" : "USA"
}
]
我需要将其转换为如下所示的字符串:
--metadata "key": "Name", "value" : "John" --metadata "key": "City", "value" : "New York" --metadata "key": "Country", "value" : "USA"
这将是 python 脚本中命令的输入。
我尝试了一些东西,但没有运气:
-
我正在尝试使用映射函数进行转换,但我不确定如何为单词键和值转义 ",因此这会中断并尝试在此之后应用连接,但出现错误。
。 |map({"-- 元数据键": .key, "value" : .value})
输出:
[
{
"-- metadata key": "Name",
"value": "John"
},
{
"-- metadata key": "City",
"value": "New York"
},
{
"-- metadata key": "Country",
"value": "USA"
}
]
如果我将join(' ') 附加到上述查询中,则会引发以下错误:
jq: error: syntax error, unexpected INVALID_CHARACTER (Unix shell quoting issues?) at <top-level>,
我对 JQ 很陌生,所以可能没有足够的知识来应用其他功能,任何帮助和解释都会很有用。
【问题讨论】:
-
(作为评论发布,因为我没有时间解释它是如何工作的)你在寻找类似this 的东西吗?
-
我很好奇——您是否为您可能遇到的每一类问题创建了一个单独的用户帐户? (“techQueriesJQ JQ”是一个相当不寻常的名称选择)。请注意,将您的存在分散到多个帐户意味着您建立声誉的速度较慢,因此与使用单个共享帐户相比,您在网站上拥有的权限更少。
-
感谢 Charles 的提醒。会照顾的。
-
只需要在结果字符串的开头和结尾删除“”,而不需要删除其他“”,如键、值。
标签: arrays json jq transformation