从JSON中提取值,其中键名称包含#in bigquery

时间:2018-04-03 19:57:05

标签: json google-bigquery

我在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']

访问其价值的最简单方法是什么?

1 个答案:

答案 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]