Нет встроенных опций для форматирования вывода jsonb.Вы можете использовать PL / Python.
create extension if not exists plpython3u;
На данный момент (Postgres 10) вы должны использовать Абстрактные деревья синтаксиса для преобразования Postgres jsonb в объект Python(автоматическое преобразование будет возможно в следующих выпусках).
create or replace function format_jsonb(obj jsonb)
returns text language plpython3u as $$
import json
import ast
js = ast.literal_eval(obj);
return json.dumps(js, separators=(',', ':'), sort_keys=True)
$$;
Использование:
select format_jsonb('{"abcd": 1, "jklm": 2, "jkl": 3, "abc": 4}');
format_jsonb
-------------------------------------
{"abc":4,"abcd":1,"jkl":3,"jklm":2}
(1 row)
Таким образом, ваша команда может выглядеть так:
\COPY (SELECT format_jsonb(my_json_column) FROM my_table) to 'data.json';