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

如何在AWS Athena中解析含转义字符的JSON列并提取Message字段

提取失败原因
  • 核心逻辑问题:return 字段对应的值不是嵌套JSON对象,而是转义后的JSON字符串,json_extract_scalar 无法直接对字符串类型的字段值做二次JSON路径提取,因此直接写$return.Message会返回空值。
  • 数据质量问题:你提供的样本数据中,callparameters 列存在多段独立JSON拼接的异常情况,如果生产数据也是该格式,需要先清洗提取出第一段包含return结构的合法JSON,再做解析。
可行解决代码

场景1:callparameters 列本身为合法JSON

仅需做两层JSON解析即可,先提取return字段的字符串内容,再对该字符串做二次JSON路径匹配:

CAST(
    json_extract_scalar(
        json_extract_scalar(callparameters, '$.return'),
        '$.Message'
    ) AS VARCHAR
) AS Message

场景2:callparameters 列存在多段JSON拼接的脏数据

先用正则提取第一段合法JSON,再做两层解析:

WITH clean_data AS (
    SELECT
        -- 匹配开头第一个完整的JSON结构
        regexp_extract(callparameters, '^\\{.*?\\}(?=\\s*\\{)', 0) AS valid_json
    FROM 你的表名
)
SELECT
    CAST(
        json_extract_scalar(
            json_extract_scalar(valid_json, '$.return'),
            '$.Message'
        ) AS VARCHAR
    ) AS Message
FROM clean_data

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:39:04