相关疑难解决方法(0)

如何将JSON文件导入PostgreSQL?

例如,我有一个文件customers.json,它是一个对象数组(严格形成),并且它非常简单(没有嵌套对象),这样(重要的是:它已经包含了ids):

[
  {
    "id": 23635,
    "name": "Jerry Green",
    "comment": "Imported from facebook."
  },
  {
    "id": 23636,
    "name": "John Wayne",
    "comment": "Imported from facebook."
  }
]
Run Code Online (Sandbox Code Playgroud)

我想将它们全部导入我的postgres db到表中customers.

我发现了一些相当困难的方法,当我将它作为json类型的列导入到像其中列出的对象imported_json命名的表和列data,然后使用sql获取这些值并将其插入到真实的表中.

但有没有一种简单的方法导入json到postgres没有触及sql?

sql postgresql json

20
推荐指数
4
解决办法
3万
查看次数

将带有副本的有效json插入postgres表

有效的JSON自然可以有反斜杠字符:\.在SQL语句中插入数据时,如下所示:

sidharth=# create temp table foo(data json);
CREATE TABLE
sidharth=# insert into foo values( '{"foo":"bar", "bam": "{\"mary\": \"had a lamb\"}" }');
INSERT 0 1

sidharth=# select * from foo;

data                         
\-----------------------------------------------------

{"foo":"bar", "bam": "{\"mary\": \"had a lamb\"}" }
(1 row)
Run Code Online (Sandbox Code Playgroud)

事情很好.

但是,如果我将JSON复制到文件并运行复制命令,我得到:

sidharth=# \copy foo from './tests/foo' (format text); 


ERROR:  invalid input syntax for type json
DETAIL:  Token "mary" is invalid.
CONTEXT:  JSON data, line 1: {"foo":"bar", "bam": "{"mary...
COPY foo, line 1, column data: "{"foo":"bar", "bam": "{"mary": "had a …
Run Code Online (Sandbox Code Playgroud)

postgresql json postgresql-9.3

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

json ×2

postgresql ×2

postgresql-9.3 ×1

sql ×1