[英]Select object by field and print parent key in JQ
我正在寻找一种方法从 JSON 列表中提取父键名称,如下所示:
{
"london1.perfect-privacy.com": {
"city": "London",
"city_short": "lo",
"country": "United Kingdom",
"country_short": "gb",
"lati": "51.511214",
"longi": "-0.119824"
},
"london2.perfect-privacy.com": {
"city": "London",
"city_short": "lo",
"country": "United Kingdom",
"country_short": "gb",
"lati": "51.511214",
"longi": "-0.119824"
},
"rotterdam2.perfect-privacy.com": {
"city": "Rotterdam",
"city_short": "ro",
"country": "Netherlands",
"country_short": "nl",
"lati": "51.924216",
"longi": "4.481776"
}
}
在这种情况下,父键是服务器名称,并且希望通过选择特定国家来使用 JQ by 来提取这些名称。 下面的代码让我可以提取所有父键,但我无法将其缩小到仅属于特定国家/地区的那些:
jq -r 'keys' serverlocations.json
结果:
london1.perfect-privacy.com
london2.perfect-privacy.com
rotterdam2.perfect-privacy.com
所以当我尝试这样的事情时,我得到了一个很大的错误......
jq -r 'keys | select(.country == "United Kingdom")' serverlocations.json"
错误:
jq: error (at <stdin>:0): Cannot index array with string "country"
我本来期望并希望得到这些结果:
london1.perfect-privacy.com
london2.perfect-privacy.com
非常感谢您的建议和专业知识!
to_entries[] | select( .value.country_short == "gb" ) | .key
jqplay上的演示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.