You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Kusto解析含date字段JSON的查询异常问题求助

Azure Kusto查询中JSON小写date字段无法访问的解决方法

在Azure Kusto查询时会遇到这样的异常:当JSON字段名为Date(首字母大写)时,查询能正常执行;但将字段名改为全小写的date后,查询就无法运行。

测试场景

场景1(正常运行)

let T = datatable(MyString:string) [ '{"Date":"2023-03-05T00:00:00.0000000Z","hour_start":"10:00","hour_end":"21:00","option":"recent"}' ]; 
T  | project MyJson = parse_json(MyString) | extend Date_ = tostring(MyJson.Date)

场景2(无法运行)

let T = datatable(MyString:string) [ '{"date":"2023-03-05T00:00:00.0000000Z","hour_start":"10:00","hour_end":"21:00","option":"recent"}' ]; 
T  | project MyJson = parse_json(MyString) | extend Date_ = tostring(MyJson.date)

原因分析

date是Kusto的保留关键字(属于日期/时间类的内置函数名称),直接用点符号.访问时,Kusto解析器会将其误认为是函数调用,而非JSON对象的字段名,导致查询报错。

解决方法

方法1:使用方括号语法访问字段

将点符号访问改为方括号包裹字段名的方式,明确告诉解析器这是JSON字段:

let T = datatable(MyString:string) [ '{"date":"2023-03-05T00:00:00.0000000Z","hour_start":"10:00","hour_end":"21:00","option":"recent"}' ]; 
T  | project MyJson = parse_json(MyString) | extend Date_ = tostring(MyJson["date"])

方法2:使用bag_extract函数提取字段

通过Kusto内置的bag_extract函数指定字段名提取值,绕开关键字冲突:

let T = datatable(MyString:string) [ '{"date":"2023-03-05T00:00:00.0000000Z","hour_start":"10:00","hour_end":"21:00","option":"recent"}' ]; 
T  | project MyJson = parse_json(MyString) | extend Date_ = tostring(bag_extract(MyJson, "date"))

内容的提问来源于stack exchange,提问作者Pawel Mazurek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:09:22