Postgresql复制在打印精美的JSON上失败

Postgresql复制在打印精美的JSON上失败,json,postgresql,psql,postgresql-9.4,Json,Postgresql,Psql,Postgresql 9.4,我有一个包含JSON数据的文件。给我的文件“打印得很好”(带有缩进等),但PostgreSQL\copy无法加载它。它给出了以下错误: CONTEXT: JSON data, line 1: { COPY test_data, line 1, column data: "{" 这种错误很容易重现。创建临时表: CREATE TEMP TABLE target(data jsonb); 接下来创建2个文件。在文件1中,输入以下文本: { "catalog_name":"foo",

我有一个包含JSON数据的文件。给我的文件“打印得很好”(带有缩进等),但PostgreSQL
\copy
无法加载它。它给出了以下错误:

CONTEXT:  JSON data, line 1: {
COPY test_data, line 1, column data: "{"
这种错误很容易重现。创建临时表:

 CREATE TEMP TABLE target(data jsonb); 
接下来创建2个文件。在文件1中,输入以下文本:

{
    "catalog_name":"foo","sale_date":"2016-02-09T00:00:00"
}
在文件2中:

{"catalog_name":"foo","sale_date":"2016-02-09T00:00:00"}
\copy
在文件1上失败,但在文件2上成功

据了解,它们都是有效的json字符串

是否可以使用
\copy
在不修改文件的情况下加载文件2


我使用的是PostgreSQL 9.4.5

如果您的数据对换行符不太敏感,您可以尝试从
JSON
输入中删除它们

例如

cat input.json | tr -d '\n' > input2.json

使用新的输入文件应该有效。

我认为您必须将每条记录保存在一行中,以使用默认的复制输入格式: