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

如何在BigQuery中提取事件参数的键(类似Python dict.keys())

在BigQuery中提取JSON对象的键(类似Python dict.keys())

我有一张BigQuery事件表,包含event_name和event_parameters两列,需要提取event_parameters里JSON对象的所有键,实现和Python中dict.keys()类似的效果。

输入表

event_nameevent_parameters
event_a{"from": "main_page","ID":"123"}
event_b{"ID":"242","custom_value":"true"}

期望输出表

event_nameevent_parameters
event_a{"from","ID"}
event_b{"ID","custom_value"}

解决方案

假设event_parameters是JSON字符串类型,可以用以下SQL实现:

SELECT
  event_name,
  -- 提取键数组后替换括号为集合格式
  REPLACE(REPLACE(TO_JSON_STRING(JSON_OBJECT_KEYS(event_parameters)), '[', '{'), ']', '}') AS event_parameters
FROM
  `你的项目ID.你的数据集ID.你的表名`

如果event_parameters是STRUCT类型,先将其转为JSON字符串再处理:

SELECT
  event_name,
  REPLACE(REPLACE(TO_JSON_STRING(JSON_OBJECT_KEYS(TO_JSON_STRING(event_parameters))), '[', '{'), ']', '}') AS event_parameters
FROM
  `你的项目ID.你的数据集ID.你的表名`

说明

  1. JSON_OBJECT_KEYS():提取JSON对象的所有键,返回字符串数组;
  2. TO_JSON_STRING():将数组转为JSON格式的字符串(如["from","ID"]);
  3. 两次REPLACE():把数组的方括号替换为大括号,得到示例中的集合样式输出。

内容的提问来源于stack exchange,提问作者Boran Göksel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:20:26