我在bigquery中有一个名为test的表。它有一列名为attributes
。
值为JSON,“#items”为关键,例如:{“#of items”:“100”}
当我执行下面的查询时
SELECT JSON_EXTRACT(attributes, "$['# of items']") AS num_items
FROM test
我遇到以下错误:
Error: JSONPath parse error at: ['# of items']
访问其价值的最简单方法是什么?
答案 0 :(得分:4)
BigQuery Legacy SQL失败
使用BigQuery Standard SQL代替,你会没事的
#standardSQL
WITH `project.dataset.test` AS (
SELECT '{"# of items": "100"}' AS attributes
)
SELECT JSON_EXTRACT(attributes, "$['# of items']") AS num_items
FROM `project.dataset.test`
结果为
Row num_items
1 "100"
如果由于某种原因你必须使用BQ Legacy SQL - 请使用以下技巧
#legacySQL
SELECT JSON_EXTRACT(REPLACE(attributes, '"# of items"', "'number of items'"), "$['number of items']") AS num_items
FROM [project:dataset.test]