我正在尝试将数据从Postgres导出到CSV,以便我可以将其导入到stormpath,这需要:
“它还要求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;
答案 0 :(得分:1)
您引用的规则是:
它要求CSV文件包含以逗号分隔的字段,以及使用竖线字符引用的字段。
但是你的例子只是修改分隔符,而不是引用字符。
尝试类似
的内容COPY servicers TO '/Users/V/Desktop/s.csv' WITH (FORMAT CSV, HEADER, QUOTE '|');
FORMAT CSV
暗示DELIMITER ','
,因此应满足第一个要求。 QUOTE '|'
应该满足第二个。
答案 1 :(得分:0)
答案 2 :(得分:0)
这是\ COPY的结果(选择*来自服务商,其中id = 36)TO' /Users/V/Desktop/nw.csv' WITH(FORMAT CSV,HEADER,QUOTE' |');
答案 3 :(得分:0)
根据您使用的Postgres版本,您应该可以这样做:
\copy (select * from tester) to '/tmp/test.csv' with delimiter '|' csv header force quote *
这将使用正确的分隔符,并引用字符。您可以在Postgres COPY文档页面上找到有关此内容的更多信息:https://www.postgresql.org/docs/9.2/static/sql-copy.html
script期望CSV文件如下所示:
|username|,|FirstName|,|LastName|,|email@email.com.com|,|{"address": "some address", "scraped_data": "blah"}|
另请注意,此脚本是开源的,因此可以根据需要随意更改!