BigQuery中使用JSON_EXTRACT/JSON_VALUE提取值始终返回Null的问题
BigQuery提取JSON中邮箱值返回Null的解决方法
你的问题出在JSON路径的键名匹配上——目标JSON里的邮箱字段键是$email(带美元符号前缀),但你之前写的路径用的是email,漏掉了开头的$;而且因为键名包含特殊字符$,需要用双引号包裹才能被BigQuery正确识别。
给你两个正确的写法:
- 用
JSON_EXTRACT提取邮箱的完整对象:
JSON_EXTRACT(reserved_subscriber_attributes, '$."$email"')
如果要直接拿到邮箱字符串,就往下钻一层:
JSON_EXTRACT(reserved_subscriber_attributes, '$."$email".value')
- 用
JSON_VALUE直接提取单个字符串值(更适合你要的邮箱结果):
JSON_VALUE(reserved_subscriber_attributes, '$."$email".value')
另外要确认reserved_subscriber_attributes字段的类型:如果是STRING类型,以上写法直接生效;如果是BigQuery的JSON类型,路径规则也是一样的,不需要额外转换。
内容的提问来源于stack exchange,提问作者Business Intelligence Service
相关产品推荐
相关产品推荐

