gpt4 book ai didi

azure - 根据值而不是索引过滤 JSON 中的数据 - Kusto 查询语言

转载 作者:行者123 更新时间:2023-12-03 05:27:46 24 4
gpt4 key购买 nike

我试图通过根据值而不是索引过滤数据来从 json 中提取特定字段。

例如我的 json 如下所示

    "AllData": [
{
"ID": "1",
"Value": "Value1"
},
{
"ID": "2",
"Value": "Value2"
},
{
"ID": "3",
"Value": "Value3"
},
{
"ID": "4",
"Value": "Value4"
},
{
"ID": "5",
"Value": "Value5"
}
]
}

我需要投影部分(id 和值),其中 value = valueX。但 valueX 可能并不总是位于索引 X,它也可以位于任何其他索引。所以在投影时我不能使用 Index.我需要根据值(value)进行项目。我可以在 where 子句中使用 contains 运算符,这有助于过滤数组(AllData 数组的列表),如下所示

MyDataSet
| where parse_json(MyJson) contains("Value5")
| project MyJson[5].ID, MyJson[5].Value // this may give wrong result because Value5 can be at some other index

任何建议都会有帮助。

最佳答案

您可以使用mv-apply : https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/mv-applyoperator

let my_value = "Value3";
print d = dynamic({"AllData": [
{
"ID": "1",
"Value": "Value1"
},
{
"ID": "2",
"Value": "Value2"
},
{
"ID": "3",
"Value": "Value3"
},
{
"ID": "4",
"Value": "Value4"
},
{
"ID": "5",
"Value": "Value5"
}
]
})
| mv-apply d = d.AllData on (
project ID = d.ID, Value = d.Value
| where Value == my_value
)
<表类=“s-表”><标题>ID值 <正文>3值3

关于azure - 根据值而不是索引过滤 JSON 中的数据 - Kusto 查询语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67525962/

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