热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:csv格式的JQ查询输出

篇首语:本文由编程笔记#小编为大家整理,主要介绍了csv格式的JQ查询输出相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了csv格式的JQ查询输出相关的知识,希望对你有一定的参考价值。



我一直在尝试使用jq从下面的json文件中提取一个csv,但到目前为止还无法完成。请问这里有专家可以提供帮助吗?

{
"values": [
{
"resourceId": "xxxx-xxxx-xxx-8b16-xxxxxx",
"property-contents": {
"property-content": [
{ 
"statKey": "config|name",
"timestamps": [
1517591034069
],
"values": [
"somebname.UNIVERSE.test.com"
]
},
{ 
"statKey": "summary|guest|ipAddress",
"timestamps": [
1517591034069
],
"values": [
"100.xx.5.xx"
]
},
{ 
"statKey": "summary|parentCluster",
"timestamps": [
1551120506024
],
"values": [
"UFO-UFO"
]
},
{ 
"statKey": "summary|parentDatacenter",
"timestamps": [
1551120806021
],
"values": [
"GALAXY-D123"
]
},
{ 
"statKey": "summary|parentVcenter",
"timestamps": [
1517591334271
],
"values": [
"X-RAY123"
]
},
{ 
"statKey": "summary|runtime|powerState",
"timestamps": [
1517591034069
],
"values": [
"Powered On"
]
}
]
}
},
..
...

xxx-xxxx-xxx-8b16-xxxxxx,somebname.UNIVERSE.test.com,100.xx.5.xx,UFO-UFO,GALAXY-D123,X-RAY123,Powered On

预期输出/输出是:

xxx-xxxx-xxx-8b16-xxxxxx,somebname.UNIVERSE.test.com,100.xx.5.xx,UFO-UFO,GALAXY-D123,X-RAY123,Powered On

答案

您的预期输出使某些事情不清楚:

第二个CSV列包含somebname.UNIVERSE.test.com,它大概是从"property-content": [ { ..., "values": [ "somebname.UNIVERSE.test.com" ], ... }部分派生的。您如何确定要从"property-content"列表中的第二列中选择哪个元素?是因为这是第一个要素吗?是因为它的"statKey": "config|name"吗?

如果"property-content"列表为空怎么办?如果没有您要查找的"statKey"条目怎么办?如果"values"列表中有零个或多个元素怎么办? CSV行只能包含一个标量值。同样的问题适用于后续的列。

在这里疯狂猜测,

$ jq -r '.values[] | [ .resourceId, (."property-contents"."property-content"[] | .values[]) ] | join(",")' your.json
xxxx-xxxx-xxx-8b16-xxxxxx,somebname.UNIVERSE.test.com,100.xx.5.xx,UFO-UFO,GALAXY-D123,X-RAY123,Powered On

我不能保证(并有些怀疑)这在一般情况下是可行的,但是我无法从您的一个示例中提取一般情况。


推荐阅读
author-avatar
殉情放开那只小兔子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有