【问题标题】:How to extract nested JSON objects in presto?如何在 presto 中提取嵌套的 JSON 对象?
【发布时间】:2020-01-08 15:40:55
【问题描述】:

有人可以帮忙解释一下如何在 Presto 中提取这个嵌套的 JSON 对象吗?这是我在名为“数据”的列中的内容:

我尝试了这段代码,但它返回 None :(

{"RESPONSE":"NEW","NEXT":"STEP1","RULE":"{"TYPE1":"false","TYPE2":"true","TYPE3":"false"} "}

选择 JSON_EXTRACT_SCALAR(data, '$.RULE.TYPE1') AS type1 , JSON_EXTRACT_SCALAR(data, '$.RULE.TYPE2') AS type2 , JSON_EXTRACT_SCALAR(data, '$.RULE.TYPE3') AS type3 来自表

【问题讨论】:

    标签: json presto


    【解决方案1】:

    查询是对的,但是JSON数据在嵌套对象的前后多出了双引号。

    如果您像这样修复数据,它将返回正确的响应。

    {"RESPONSE":"NEW","NEXT":"STEP1","RULE":{"TYPE1":"false","TYPE2":"true","TYPE3":"false"}}
    

    【讨论】:

    • 感谢您的回答!但是我如何有效地删除你提到的双引号?我有成千上万这样的行。请指教!
    • 作为解决方法,您可以使用替换功能。选择替换(替换('', ':"{"', ':{"'), '"}"', '"}')。不过,这可能会破坏其他角色。
    猜你喜欢
    • 2019-03-07
    • 2021-03-04
    • 2020-04-18
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多