【问题标题】:How can I import JSON data into PostgreSQL with psql?如何使用 psql 将 JSON 数据导入 PostgreSQL?
【发布时间】:2017-07-17 02:32:15
【问题描述】:

PostgreSQL 有很多处理 JSON 数据的函数。但是,导入 JSON 数据似乎很困难,因为 COPY 命令不支持 JSON。

假设我有一个名为 data.json 的文件,其中包含如下 JSON 数据:

[
  {"id":1, "name": "Jakob"},
  {"id":2, "name": "Klara"}
]

有没有一种简单的方法可以只使用 psql 来导入 JSON 数据文件?

【问题讨论】:

标签: json postgresql psql


【解决方案1】:

只要引用正确,可以使用CSV格式导入任意数据。您可以使用 cat & sed 引用您的 CSV 文件:

cat data.json | sed 's/"/""/g' | cat <(echo '"') - <(echo '"')

第一个cat命令读取文件,sed命令将所有双引号替换为两个双引号,最后一个cat在json前后放一个双引号。

让我们在服务器上创建一个表:

psql -c 'CREATE TABLE import(data jsonb)'

您现在可以将此命令的结果与 psql 一起使用:

cat data.json | sed 's/"/""/g' | cat <(echo '"') - <(echo '"') | \
 psql -c 'COPY import(data) FROM STDIN (FORMAT CSV)'

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多