【发布时间】:2021-12-29 01:24:16
【问题描述】:
存在重复项时,有没有办法返回唯一的对象/数组?这就是我想要做的。
我有一个这样的有效载荷:
{
"data": [
{
"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM",
"amount": 7885016,
"block": 470788,
"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88",
"hash": "DTU1GGfR0eU15hv6KiV_bg6FOJXfUWz4TjIq1H7TGy4",
"timestamp": "2020-08-28T01:29:46.000000Z"
}
]
}
{
"data": [
{
"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM",
"amount": 7885016,
"block": 470788,
"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88",
"hash": "DTU1GGfR0eU15hv6KiV_bg6FOJXfUWz4TjIq1H7TGy4",
"timestamp": "2020-08-28T01:29:46.000000Z"
}
]
}
{
"data": [
{
"account": "12xUoMKwf12ABjNx4VCvYcNkX79gW1kzz2JnBLxkFbjswRczRvM",
"amount": 8623955,
"block": 470509,
"gateway": "113kQU96zqePySTahB7PEde9ZpoWK76DYK1f57wyhjhXCBoAu88",
"hash": "5fQJY9MprH9b3IstVU1SdfBteUWoF_sdsVuiARPBtTY",
"timestamp": "2020-08-27T19:01:48.000000Z"
}
]
}
如您所见,前 2 个有效载荷是相同的,最后一个是唯一的。我需要获取唯一的对象,然后在它们低于某个时间段时总结 .amount 。这是我目前所拥有的
jq --arg this "$(date +%Y-%m-%dT%H:%M:%S)" '.data[] | select(.timestamp >= $this) | .amount'
这给了我数量,所以我可以总结它们,但它也包含重复项。我想做的是通过.hash 获取唯一的对象,这个想法是总结给定日期内的总金额
提前致谢
【问题讨论】: