我需要解析列mapping
并从数组中的第二个对象中获取键值对。我想用获取的数据创建新列。数据如下所示:
row mapping
1 [{'adUnitCode': ca, 'id': 35, 'name': ca}, {'adUnitCode': hd, 'id': 11, 'name': HD}]
2 [{'adUnitCode': bb, 'id': 56, 'name': jk}, {'adUnitCode': hm, 'id': 12, 'name': HM}]
3 [{'adUnitCode': gh, 'id': 78, 'name': ff}, {'adUnitCode': hk, 'id': 13, 'name': HK}]
所需的输出:
row adUnitCode id name
1 hd 11 HD
2 hm 12 HM
3 hk 13 HK
以下是方法之一(BigQuery标准SQL)
#standardSQL
select
json_extract_scalar(second_object, "$.adUnitCode") as adUnitCode,
json_extract_scalar(second_object, "$.id") as id,
json_extract_scalar(second_object, "$.name") as name
from `project.dataset.table`, unnest(
[json_extract_array(regexp_replace(mapping, r"(: )(\w+)(,|})", "\\1'\\2'\\3"))[safe_offset(1)]]
) as second_object
如果将以上内容应用于您问题的样本数据,则结果为
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句