【发布时间】:2019-03-06 10:08:10
【问题描述】:
有没有一种方法可以组合以逗号分隔的特定键的多个值。就我而言,我正在尝试打印多个 service.names 值,以便它们可以打印在以逗号分隔的单行中。
我如何组合用逗号分隔的service.name 值,以便它们打印如下:
{
"number": 1,
"service name": "FTP-Server, SSH-Server"
}
我在 pyjq 中尝试过,但它通过一个完整的单独块分隔值。
.group[].group[] | { "number": .number, "service name": .service[].name }
这是我得到的输出
{
"number": 1,
"service name": "FTP-Server"
}
{
"number": 1,
"service name": "SSH-Server"
}
给出以下相同的数据,带/不带对象字典。我可以接受任何格式。
启用对象字典的 JSON 文件
{
"objects-dictionary": [
{
"name": "FTP-Server",
"port": "21",
"type": "service-tcp",
"uid": "ef245528-9a3d-11d6-9eaa-3e5a6fdd6a6a"
},
{
"name": "SSH-Server",
"port": "22",
"type": "service-tcp",
"uid": "dff4f7ba-9a3d-11d6-91c1-3e5a6fdd5151"
}
],
"base": [
{
"number": 1,
"service": [
"ef245528-9a3d-11d6-9eaa-3e5a6fdd6a6a",
"dff4f7ba-9a3d-11d6-91c1-3e5a6fdd5151"
],
"uid": "90088436-ac42-4363-84a6-3dbebf3c11f0"
}
]
}
没有对象字典的 JSON 文件
{
"group": [
{
"group": [
{
"number": 1,
"service": [
{
"name": "FTP-Server",
"port": "21",
"type": "service-tcp",
"uid": "ef245528-9a3d-11d6-9eaa-3e5a6fdd6a6a"
},
{
"name": "SSH-Server",
"port": "22",
"type": "service-tcp",
"uid": "dff4f7ba-9a3d-11d6-91c1-3e5a6fdd5151"
}
],
"uid": "90088436-ac42-4363-84a6-3dbebf3c11f0"
}
]
}
]
}
【问题讨论】:
-
您只想将列表中单个字段的所有值导出为逗号分隔列表?
-
是的,但只有与组对应的键值。假设该组有一个号码、一个 uid 和两个服务。我希望该服务在一行中打印。所以如果存在多个组,脚本可以单独打印它们
-
@peak,可接受的输出已在问题顶部更新。