【问题标题】:get columns with values from json从 json 中获取具有值的列
【发布时间】:2021-01-19 12:03:24
【问题描述】:

输入 JSON:

{"tags":{"timestampActual":"S","power":"W"},"items":[["1609598009","120"]]}

我需要使用 Kusto 数据语言将其转换为列

timestampActual power
1609598009 120

甚至将 unix 时间戳值(以秒为单位)转换为 UTC

timestampActual power
2021-01-02T14:33:29 120

【问题讨论】:

    标签: json azure-data-explorer


    【解决方案1】:

    更新它以考虑密钥顺序:

    datatable(d:dynamic)[dynamic({"tags":{"timestampActual":"S","power":"W"},"items":[["1609598009","120"]]})]
    | extend Keys = bag_keys(d.tags)
    | mv-expand d.items
    | extend Timestamp = unixtime_seconds_todatetime(tolong(d_items[array_index_of(Keys, "timestampActual")]))
    | extend Power = toint(d_items[array_index_of(Keys, "power")])
    | project-away d, d_items, Keys
    

    结果:

    【讨论】:

    • 通常是的,确实如此。唯一的问题是,如果标签顺序发生变化,如何用项目替换标签。你能提出任何解决方案吗?在我的真实示例中,我有很多标签,每次获取数据时顺序都可能不同。项目总是以与标签相同的顺序存储在第一个数组元素中。
    • 我更新了解决方案,根据关键位置从数组中获取项目。
    • 很高兴!你能标记答案吗?
    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多