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

KQL使用bag_unpack解包字典列无结果及dynamic列报错问题

问题根因
  • 初始Details列是字符串(string)类型,不符合bag_unpack()要求入参为dynamic类型的规则,直接调用会抛出语义错误。
  • 列内存储的是Python风格字典字符串,不是标准JSON格式:标准JSON要求字符串使用双引号包裹、空值为null,但当前内容使用单引号包裹字符串、空值标记为None,parse_json()/todynamic()无法识别这种非标准格式,解析结果为空值,后续解包自然无返回结果。
修复方案

先将非标准的字典字符串替换为标准JSON格式,再做类型转换和解包,参考查询语句如下:

Datatable
// 先替换单引号为双引号、替换None为标准JSON空值null,再解析为dynamic类型
| extend Details = parse_json(replace_string(replace_string(Details, "'", '"'), "None", "null"))
// 执行解包
| evaluate bag_unpack(Details)

注意事项

  • 上述简单替换方案适用于字段内容本身不包含单引号字符的场景,如果字段值里本身存在单引号(比如文本内容包含don't这类带单引号的词汇),替换逻辑会破坏原有内容,这种场景建议在数据入库环节就将字典序列化为标准JSON格式再存储,从根源避免格式兼容问题。
  • 可以先单独执行extend那一步语句,确认Details列已被正确解析为dynamic类型的键值对对象后,再追加解包逻辑。

内容的提问来源于stack exchange,提问作者D P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:54:39