Postgresql拷贝在漂亮的印刷JSON上失败

时间:2016-02-10 23:29:22

标签: json postgresql psql postgresql-9.4

我有一个包含JSON数据的文件。该文件是给我的#34;漂亮的印刷" (使用缩进等),但PostgreSQL gcloud无法加载它。它给出了以下错误:

\copy

此错误很容易重现。创建临时表:

CONTEXT:  JSON data, line 1: {
COPY test_data, line 1, column data: "{"

接下来创建2个文件。在file1中,输入以下文本:

 CREATE TEMP TABLE target(data jsonb); 

在file2中:

{
    "catalog_name":"foo","sale_date":"2016-02-09T00:00:00"
}

{1}在file1上失败但在file2上成功。

根据jsonlint.com,它们都是有效的json字符串。

是否可以使用{"catalog_name":"foo","sale_date":"2016-02-09T00:00:00"} 加载file2而不对文件进行任何修改?

我正在使用PostgreSQL 9.4.5

1 个答案:

答案 0 :(得分:1)

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

例如

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

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