gpt4 book ai didi

json - 在 Bigquery json_extract() 函数中转义字符

转载 作者:行者123 更新时间:2023-12-04 10:58:44 25 4
gpt4 key购买 nike

当使用 Google 的 BigQuery 时,有一个 function可以使用 jsonPath 从 json 字符串中提取元素。例如:

SELECT JSON_EXTRACT(data,"$.key.value") AS feature FROM tablename

当 json 键本身包含一个点时,{"key.value":"value"} 目前尚不清楚如何正确转义它。

这个 jsonpath message board question说jsonpath本身就支持这种格式

@Test 
public void path_with_bracket_notation() throws Exception {
String json = "{\"foo.bar\": {\"key\": \"value\"}}";

Assert.assertEquals("value", JsonPath.read(json, "$.['foo.bar'].key"));

但是在 bigquery 中,这种类型的转义尝试会导致 Error: JSONPath parse error 错误。

最佳答案

更新,新答案:

BigQuery 的 JSON_EXTRACTJSON_EXTRACT_SCALAR 函数现在支持 JSONPath 中的 JSON 括号表示法,因此以下查询有效:

SELECT JSON_EXTRACT('{"key.value": {"foo": "bar"}}', "$['key.value']")

返回

{"foo":"bar"}

旧的,现在已经过时的答案:

不幸的是,BigQuery 不支持转义 json 路径中的特殊字符。解决方法是使用 REPLACE 函数将点转换为下划线,即

SELECT 
json_extract(
replace('{"key.value":"value"}',
'key.value',
'key_value'),
'$.key_value')

关于json - 在 Bigquery json_extract() 函数中转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35843548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com