Вставка вложенного JSON в столбец в Postgres - PullRequest
0 голосов
/ 10 октября 2018

Я пишу функцию вставки, и у меня есть вложенный словарь, который я хочу вставить в столбец в postgres, есть ли способ вставить весь json в столбец?Допустим, мне нужно вставить значение ключа "val" в столбец, как мне этого добиться?Я использую библиотеку psycopg2 в своем коде Python.

"val": {
  "name": {
    "mike": "2.3",
    "roy": "4.2"
     }
 }

1 Ответ

0 голосов
/ 11 октября 2018

Да, вы можете извлечь вложенный JSON, используя как минимум Postgres 9.4 и выше, приведя вашу строку к JSON и используя оператор «Получить поле объекта JSON по ключу»:

YOUR_STRING ::CAST JSON_OPERATOR
'{"val":1}' ::JSON -> 'val'

Это работает как минимумPostgres 9.4 и выше:

INSERT INTO my_table (my_json)
    VALUES ('"val":{"name":{"mike":"2.3"}}'::JSON->'val');

В зависимости от типа столбца вы можете выбрать приведение к JSONB вместо JSON (приведенное выше будет работать только для TEXT и JSON).

INSERT INTO my_table (my_json) 
    VALUES ('"val":{"name":{"mike":"2.3"}}'::JSONB->'val');

Смотри: https://www.postgresql.org/docs/9.5/static/functions-json.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...