【发布时间】:2017-03-03 18:21:57
【问题描述】:
我基本上想获取“问题”中的所有键并为每个键分别记录。 假设我有看起来像这样的 json 数据:
"result": {
"id": "dsgdsg",
"name": "xxx",
"expiration": {
"startDate": null,
"endDate": null
},
"questions": {
"QID4": {
"questionType": {
"selector": "TB",
"subSelector": null
},
"questionLabel": null,
"validation": {
"doesForceResponse": false
}
},
"QID5": {
"questionType": {
"selector": "ML",
"subSelector": null
},
"questionLabel": null,
"validation": {
"doesForceResponse": false
}
},
"QID6": {
"questionType": {
"selector": "SAVR",
"subSelector": "TX"
},
"questionLabel": null,
"validation": {
"doesForceResponse": false
}
},
"QID7": {
"questionType": {
"selector": "SAVR",
"subSelector": "TX"
},
"questionLabel": null,
"validation": {
"doesForceResponse": false
}
}
}
}
有没有办法使用 jsonpaths 将每个 QID 单独加载到具有自己记录的自己的字段中?我已经尝试过这样的事情:
{
"jsonpaths": [
"$.result.id",
"$.result.name",
"$.result.questions.[0]"
]
}
但这仅给出 QID4 内的数据,依此类推。我可以以某种方式遍历 jsonpaths 吗?
【问题讨论】:
-
每个结果中是否有固定数量的问题...即所有结果都有问题 4-7?
-
不,这是我的主要问题,每个结果都有不同数量的问题,所以我无法给出具体的最小值和最大值。
-
我现在要做的基本上是使用python获取所有qid并在qid中创建一个包含该键的新字段。
-
两步法? 1. 将整个 JSON 作为 VARCHAR 复制到一列,以及 2. 编写 UDF 以根据需要提取字段。
-
@rohitvk 我从未尝试过使用我目前正在研究的 UDF,如果您有任何与我正在尝试做的文档相近的文档,请链接我。非常感谢您的意见。
标签: json amazon-redshift jsonpath