[英]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
我的示例 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.