2016-06-20 9 views
3

Я пытаюсь экспортировать данные из Postgres в CSV, так что я могу импортировать его в stormpath, который требует:Как отделить экспортированные данные от Postgres на отдельные вкладки в формате CSV?

«Это также требует файл CSV, чтобы иметь столбцы:

  • имя пользователя
  • электронной
  • given_name
  • фамилия
  • custom_data

Для этого требуется, чтобы файл CSV имел поля с разделителями-запятыми и поля, указанные с символом «.».

До сих пор я мог экспортировать данные из Postgres, но я не могу отделить данные на нескольких вкладках с помощью '|' как разделитель.

Разделяет данные с не видимым «» в качестве разделителя и распространяет данные по вкладкам в рамках их соответствующих ключевых

\COPY (SELECT * FROM servicers) TO '/Users/V/Desktop/s.csv' DELIMITER ',' CSV HEADER; 

данных Разделяет с „|“ в качестве разделителя, но сохраняет все данные в одной вкладке, в отличие от отдельных вкладок

\COPY (SELECT * FROM servicers) TO '/Users/V/Desktop/s.csv' DELIMITER '|' CSV HEADER; 

ответ

1

правила, которые вы процитировать являются:

Это требует файл CSV, чтобы иметь запятой с разделителями полей и полей указаны с трубкой символ |.

Но ваши примеры просто возились с разделителем, а не с кавычкой.

Try что-то вроде

COPY servicers TO '/Users/V/Desktop/s.csv' WITH (FORMAT CSV, HEADER, QUOTE '|'); 

FORMAT CSVDELIMITER ',' подразумевает, так что должно удовлетворять первое требование. QUOTE '|' должен удовлетворять второму.

+0

привет спасибо за вашу помощь, однако это не цитирует данные с '|' или что-нибудь. Я буду размещать снимок ниже –

0

this is what appears now

это то, что появляется в настоящее время, хотя я использовал код выше

COPY TO обслуживающего '/Users/V/Desktop/s.csv' С (формат CSV, HEADER, цитирую '|');

+0

Поскольку поля 'is_signed_up',' email', 'hash' и' account_type', кажется, импортируются правильно, я подозреваю, что ваша проблема может быть связана с вашими данными, а не с процессом экспорта. Если вы выберете * из сервис-провайдеров, где id = 36' из командной строки 'psql', что вы получаете? – jmelesky

+0

Результат указан ниже. Это то же самое, что и на изображении выше –

+0

Вместо того, чтобы использовать 'COPY' для создания и импорта файла, попробуйте просмотреть данные только из командной строки' psql'. Я сильно подозреваю, что, например, для id 36, 'name' будет« e », а номер телефона будет« n ». То есть я сильно подозреваю, что вы правильно экспортируете свои данные и что у вас есть только пятнистые данные. – jmelesky

0

enter image description here

это результат \ COPY (выберите * из сервисерами где ID = 36) К '/Users/V/Desktop/nw.csv' С (формат CSV, HEADER, цитирую '|');

0

В зависимости от версии Postgres вы используете, вы должны быть в состоянии сделать это следующим образом:

\copy (select * from tester) to '/tmp/test.csv' with delimiter '|' csv header force quote * 

Это будет использовать правильный разделитель, и кавычки.Вы можете найти более подробную информацию об этом на то Postgres COPY страницу DOCS здесь: https://www.postgresql.org/docs/9.2/static/sql-copy.html

script ожидает файл CSV, чтобы выглядеть следующим образом:

|username|,|FirstName|,|LastName|,|[email protected]|,|{"address": "some address", "scraped_data": "blah"}| 

Кроме того, обратите внимание, что этот сценарий является открытым исходным кодом, так что вы бесплатно, чтобы изменить его по мере необходимости!