[数据处理]
get_json_object替换函数
yhdata_yzm
显示全部楼层
发表于 2023-6-8 13:08:27
|
|
|
|
yhdata_EXVUtF3P
显示全部楼层
发表于 2023-6-8 13:43:01
|
|
|
|
yhdata_yzm
显示全部楼层
发表于 2023-6-8 14:29:51
1.数据库里看到的json格式的数据是什么样的。
2.反馈下你的数据库类型
3.反馈下你的sql是怎么写的 |
|
|
|
|
yhdata_EXVUtF3P
显示全部楼层
发表于 2023-6-9 11:32:34
1、{"score":5,"scoreEmojiDTOList":[{"score":1,"text":"非常不满意"},{"score":2,"text":"不满意"},{"score":3,"text":"一般"},{"score":4,"text":"比较满意"},{"score":5,"text":"非常满意"}],"labelList":["节奏合理","认真负责","视流畅","清晰","生动有趣","内容实用"]}
2、数据库类型为presto,SQL数据集
3、取数逻辑
select *
--,comment->> 'labelList' as labelList
from
表名 |
|
|
|
|
yhdata_yzm
显示全部楼层
发表于 2023-6-9 13:28:08
在 Presto 中,你可以使用 JSON 函数和操作符来处理数据库中的某个字段的 JSON 数据,并从中提取特定的键值对。
假设你有一个名为 `my_table` 的表,其中包含一个名为 `json_column` 的字段,存储了 JSON 数据。你想从该字段中提取键为 "A" 的值,并将其作为新列 "A" 返回。
以下是一种方法,使用 Presto 的 JSON 函数和操作符来实现:
```sql
SELECT
json_extract_scalar(json_column, '$.A') AS A
FROM my_table
```
在上述示例中,我们使用 `json_extract_scalar()` 函数来提取 JSON 字段 `json_column` 中键为 "A" 的值。`json_extract_scalar()` 函数的第一个参数是要提取值的 JSON 字段,第二个参数是 JSON 路径表达式,表示要提取的键的路径。在这里,我们使用 `$.A` 来指定键为 "A"。
该查询将返回一个包含新列 "A" 的结果集,其中包含从 `json_column` 字段中提取的 "A" 的值。
请注意,Presto 中的 JSON 函数和操作符的具体语法和功能可能会因 Presto 版本而异。如果你遇到问题,请参考 Presto 的官方文档或社区资源,以了解特定版本中 JSON 函数和操作符的使用方法和支持情况。
可以远程的话,远程看看 |
|
|
|
|
yhdata_EXVUtF3P
显示全部楼层
发表于 2023-6-9 15:22:17
json_extract_scalar(json_column, '$.A')
这个提取不了json_column中嵌套的数组 字段 |
|
|
|
|
yhdata_EXVUtF3P
显示全部楼层
发表于 2023-6-9 15:30:14
就以这个json为例,我要提取abelList里面的值,
目前
①json_extract_scalar(json_column, '$.labelList') AS 解析出来为空
② get_json_object(json_column, '$.labelList') 解析出来报错
您能提供下可以解析出来labelList的代码吗?
{"score":5,"scoreEmojiDTOList":[{"score":1,"text":"非常不满意"},{"score":2,"text":"不满意"},{"score":3,"text":"一般"},{"score":4,"text":"比较满意"},{"score":5,"text":"非常满意"}],"labelList":["节奏合理","认真负责","视流畅","清晰","生动有趣","内容实用"]} |
|
|
|
|