На основе Export Postgres table as JSON вы можете выбрать нужные данные из своей таблицы, преобразовать их в JSON, а затем copy
в файл. Вот SQLFiddle showing the JSON conversion.
Давайте играть с
CREATE TABLE data (id integer, name varchar(255), quantity integer);
INSERT INTO data VALUES
(1, 'apple', 10),
(2, 'banana', 20),
(3, 'cherry', 30)
;
Во-первых, получить данные в формат, который вы хотите, с меньшим количеством столбцов и любые изменения имен.
SELECT
name AS fruit_name,
quantity
FROM data;
Затем поместите это в подзапрос и преобразуйте его в JSON.
SELECT row_to_json(fruit_data) FROM (
SELECT
name AS fruit_name,
quantity
FROM data
) fruit_data;
Наконец, оберните все в copy
.
COPY (
SELECT row_to_json(fruit_data) FROM (
SELECT
name AS fruit_name,
quantity
FROM data
) fruit_data
) TO 'a.file';
Это будет печатать каждую строку как JSON построчно в файл
{"fruit_name":"apple","quantity":10}
{"fruit_name":"banana","quantity":20}
{"fruit_name":"cherry","quantity":30}
Postgres, вероятно, может построить их в массив, прежде чем вы выводите их, но я думаю, что было бы проще постобработки файл в массив, если это тот формат, который вы хотите.
Я не понимаю этого 'SELECT row_to_json (fruit_data) FROM () fruit_data;' - what's fruit_data? – imatahi
Что такое '<запрос данных>'? – imatahi
Что такое '' запрос JSON''? Не могли бы Вы уточнить? – imatahi