簡體   English   中英

在 BigQuery 中從 json 中提取數據

[英]Extract data from json in BigQuery

我在 bigquery 表中有一個名為created_by的字段,其文本如下:

   created by      
  "{\"name\": \"Charles Darwin\", \"email\": \"theemail@domain.com\"}"

該字段是一個“STRING”類型的字段。 我需要的是在兩個分離的字段中提取名稱和 email。 我怎樣才能做到這一點?

謝謝

您可以考慮並嘗試使用 BigQuery 的REGEX_EXTRACT function 的以下方法。

with sample_data as (
  select "{\"name\": \"Charles Darwin\", \"email\": \"theemail@domain.com\"}" as my_string
)

select REGEXP_EXTRACT(my_string, r'"name":(\D+),') as ext_name,
REGEXP_EXTRACT(my_string, r'"email":(.+)}') as ext_email
from sample_data

樣本 Output: 在此處輸入圖像描述

我的示例 REGEX 是最基本的示例,因為我不熟悉您的完整數據。 您可以根據自己對數據的分析來增強或創建自己的 REGEX,以適合您所需的驗證。

見下文,鏈接到這里的谷歌文檔:

https://cloud.google.com/bigquery/docs/reference/standard-sql/json_functions#json_value

select json_value(json "{"name": "Charles Darwin", "email": "theemail@domain.com"}", '$.email') as getEmail

獲取郵件

select json_value(json "{"name": "Charles Darwin", "email": "theemail@domain.com"}", '$.name') as getName

獲取名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM