gpt4 book ai didi

arrays - 将JSON中的多个数组对象解析为CSV jq的JQ错误:错误(在:734665):无法使用字符串索引数组

转载 作者:行者123 更新时间:2023-12-02 23:25:44 28 4
gpt4 key购买 nike

我有一个来自ElasticSearch查询的JSON结果,该查询在JSON结果中提供多个对象。

{
"buckets": [{
"perf_SP_percentiles": {
"values": {
"80.0": 0,
"95.0": 0
}
},
"perf_QS_percentiles": {
"values": {
"80.0": 12309620299487,
"95.0": 12309620299487
}
},
"latest": {
"hits": {
"total": 3256,
"max_score": null,
"hits": [{
"_source": {
"is_external": true,
"time_ms": 1492110000000
},
"sort": [
1492110000
]
}]
}
}
}]
}

我在别人的帮助下写了以下jq
jq -r '.buckets[].latest.hits.hits[]._source | [."is_external",."time_ms"] | @csv'

我需要将perf_QS_Percentiles添加到CSV,但出现错误。
jq -r '.buckets[].latest.hits.hits[]._source | [."is_external",."time_ms"], .buckets[].perf_QS_percentiles.values | [."80.0",."95.0"]  | @csv'

我收到错误 jq: error (at <stdin>:734665): Cannot index array with string。可能是我在这里错过了一些东西。我正在阅读JQ手册 https://stedolan.github.io/jq/manual/#Basicfilters,以了解如何解析数组中的不同JSON对象,但是由于有人可能更容易指出,所以在这里询问。

最佳答案

您可以使用(....) + (....)创建数组,然后再传递给@csv:

jq -r '.buckets[] |
(.latest.hits.hits[]._source | [."is_external",."time_ms"]) +
(.perf_QS_percentiles.values | [."80.0",."95.0"]) | @csv'

关于arrays - 将JSON中的多个数组对象解析为CSV jq的JQ错误:错误(在<stdin>:734665):无法使用字符串索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43503155/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com