【发布时间】:2021-11-13 16:09:07
【问题描述】:
我有一个 python 脚本,它轮询 API 并将响应存储在 BQ 表中,该表具有如下所示的分层字符串化 JSON 字段:
"{""inputs"": {""Layer1"": {""Layer2"": {""Layer3"": {""item1"": 0.7, ""item2"": 10.0, ""item3"": 0.14}}}}"
我创建了以下查询以取消嵌套:
ro.id,
json_extract_scalar(s,
'$.item1') AS item1,
json_extract_scalar(s,
'$.item2') AS item2,
json_extract_scalar(s,
'$.item3') AS item3
FROM
`project.dataset.table` ro
LEFT JOIN
UNNEST(json_extract_array(response)) AS r
LEFT JOIN
UNNEST (json_extract_array("Layer1")) AS o
LEFT JOIN
UNNEST (json_extract_array("Layer2")) AS sc
LEFT JOIN
UNNEST (json_extract_array("Layer3")) AS s
查询按预期运行并构建表,但未嵌套字段中的所有数据均为空。
我无法控制脚本如何存储数据,所以我只能利用 SQL 来解决这个问题。这两组双引号是我的主要问题吗?如果是这样,解决这个问题的最佳方法是什么?
【问题讨论】:
标签: json google-bigquery