1

我有很多数据看起来像

{"tuesday":"<30, 60>"}  
{"friday":"<0, 5>"} 
{"saturday":"<5, 10>"}  
{"friday":"<0, 5>"} 
{"saturday":"<5, 10>"}  
{"sunday":"0"}  
{"monday":"<0, 5>"}

我想要的只是价值,而不管密钥如何。

我的查询:

customEvents
| where name == "eventName"
| extend d = parse_json(tostring(customDimensions.['Properties']))
| project d
| take 7

d 是一个动态对象,我可以为该值执行 d.monday,但我想在没有密钥的情况下获取该值。Kusto 可以做到这一点吗?

谢谢

4

1 回答 1

1

对于您在上面演示的单一属性的情况,使用parse运算符可以工作:

datatable(d:dynamic)
[
    ,dynamic({"tuesday":"<30, 60>"})
    ,dynamic({"friday":"<0, 5>"})
    ,dynamic({"saturday":"<5, 10>"})
    ,dynamic({"friday":"<0, 5>"})
    ,dynamic({"saturday":"<5, 10>"})
    ,dynamic({"sunday":"0"})
    ,dynamic({"monday":"<0, 5>"})
]
| parse d with * ':"'  value '"' *
| project value

笔记:

  • 如果您的值不一定包含在双引号中(例如数字),那么您应该能够kind=regexparse运算符指定,并使用条件表达式来确定双引号的存在。

  • 如果每个属性包可能有超过 1 个属性,extract_all()则可以选择使用。

相关文件:

于 2019-03-13T16:14:26.093 回答