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

BigQuery含空格JSON路径提取session_id失败,求正确写法

解决BigQuery中提取带空格键的嵌套JSON值问题

嘿,我刚好碰到过一模一样的问题!你的核心痛点就是JSON键里带空格(也就是Action Target这个键),BigQuery的JSON路径对这种特殊键名有特定的写法要求,我给你捋清楚:

正确的提取语句

最简洁且不容易踩坑的写法是用**反引号(`)**包裹带空格的键名,整个JSON路径用单引号括起来:

json_extract_scalar(data, '$.integrations.`Action Target`.session_id')

另外还有一种符合JSONPath规范的写法,用方括号加双引号,但要注意SQL里的引号嵌套(这种写法有时候容易因为转义出问题,不如反引号直观):

json_extract_scalar(data, '$.integrations["Action Target"].session_id')

帮你排查之前的错误写法

咱们逐个看你试的几种写法为啥不行:

  • 第一种:json_extract_scalar(data, '$.integrations.''Action Target''.session_id')
    你这里用双单引号是SQL里转义单引号的方式,但在JSON路径里不适用,BigQuery会把''Action Target''当成路径的一部分,自然解析失败。
  • 第二种:json_extract_scalar(data, '$.integrations.'Action Target'.session_id')
    这个属于SQL语法错误了——字符串中间直接插单引号会把语句截断,数据库会把'$.integrations.'当成一个单独的字符串,后面的Action Target会被当成无效的标识符,直接报错。
  • 第三种和第四种:json_extract_scalar(data, '$.integrations["Action Target"].session_id') / json_extract_scalar(data, '$["integrations"]["Action Target"]["session_id"]')
    这两个路径本身是符合规范的,但你提供的JSON示例里有个小错误:"Actions Target": {...},后面多了一个逗号,这会导致JSON解析失败!先把这个多余的逗号去掉,再试这两个写法应该就能用了。另外还要确保你的data列是JSON类型,或者是可以被BigQuery解析为JSON的字符串类型。

最后提醒下:如果你的JSON数据里经常有带空格的键,反引号的写法是BigQuery里最稳妥的选择哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:45:48