2017-02-26 43 views
0

PostgreSQL有很多用于处理JSON数据的函数。但是,由于COPY命令不支持JSON,因此导入JSON数据似乎很困难。如何使用psql将JSON数据导入到PostgreSQL中?

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

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

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

+0

如果这是一个一次性的项目,我会用一个JSON来CSV转换器,然后使用正常的复制命令。 http://stackoverflow.com/questions/4130849/convert-json-format-to-csv-format-for-ms-excel – Paulb

回答

0

只要您正确引用它,就可以使用CSV格式导入仲裁数据。您可以使用cat & sed中引用您的CSV文件:

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

第一cat命令读取文件,sed命令替换为两个双引号的所有双引号,最后猫把一个双引号之前和之后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)' 
相关问题