【发布时间】:2021-09-22 11:28:03
【问题描述】:
您好,我是一名新的数据工程师,所以我还在学习。我刚开始在一家公司工作,我注意到他们将来自 API 的数据作为 JSON 提供,但他们将其作为文本存储在 Postgres 中。我认为我可以将其转换为 JSON,然后尝试从列中访问我需要的数据,但是当我运行查询时,我将所有内容都作为空值,请在下面找到数据和查询的示例。任何帮助将不胜感激:)
[
{
"name": "Vorwurf",
"value": "Geschwindigkeitsverstoß",
"type": "DROPDOWN_LIST",
"isDefault": true,
"isRequired": false,
"option": "Geschwindigkeitsverstoß, Rotlichtverstoß, Abstandsverstoß, Handyverstoß, Alkohol, Anderer Tatvorwurf"
},
{
"name": "Schreiben erhalten?",
"value": "No",
"type": "CHECKBOX",
"isDefault": true,
"isRequired": false
},
{
"name": "Besteht Rechtsschutzversicherung",
"value": "Yes",
"type": "CHECKBOX",
"isDefault": true,
"isRequired": true
},
{
"name": "Welches Schreiben liegt vor?",
"value": "Bußgeldbescheid",
"type": "DROPDOWN_LIST",
"isDefault": true,
"isRequired": false,
"option": "Bußgeldbescheid, Anhörungsbogen, Zeugenfragebogen, Kein Schreiben"
},
{
"name": "Lead Nummer",
"value": "GM00002153",
"type": "TEXT",
"isDefault": true,
"isRequired": false
},
{
"name": "URL zum vorliegenden Schreiben",
"value": null,
"type": "TEXT",
"isDefault": true,
"isRequired": false
},
{
"name": "Angabe Website - Wie möchten Sie uns Ihre Unterlagen senden?",
"type": "DROPDOWN_LIST",
"isDefault": true,
"isRequired": false,
"option": "Fax, E-Mail, Unterlagen bereits hochgeladen"
}
]
With t as (select cast(custom_fields as json)
from test.matters),
CF as (SELECT custom_fields ->> 'name' as "name",
custom_fields ->> 'isDefault' as "isDefault",
custom_fields ->> 'isRequired' as "isRequired",
custom_fields ->> 'option' as "option",
custom_fields ->> 'groups' as "groups",
custom_fields ->> 'practice_ids' as "practice_ids",
custom_fields ->> 'value' as "value"
from t)
select * from CF
我也尝试像这样将文本转换为 json:
SELECT custom_fields::json->>'name' FROM test.matters_che
【问题讨论】:
标签: arrays json postgresql