当存在重复数据时,是否有一种方法可以返回唯一的对象/数组?这是我想要做的事情。
我有一个这样的有效载荷:
{
"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"
}
]
}
正如您所看到的,前两个有效载荷是相同的,而最后一个是唯一的。我需要获取唯一的对象,然后在它们的时间周期低于某个特定时间时求和 .amount。以下是我目前拥有的内容:
jq --arg this "$(date +%Y-%m-%dT%H:%M:%S)" '.data[] | select(.timestamp >= $this) | .amount'
这让我得到了数量,所以我可以把它们加起来,但是也包含了重复的。我想要做的是通过它们的.hash
获取唯一的对象。目标是总结给定日期内的总金额。
提前感谢!