2017-02-26 9 views
0

PostgreSQLには、JSONデータを扱うための多くの関数があります。しかし、COPYコマンドはJSONをサポートしていないので、JSONデータをインポートするのは難しいようです。私は、次のようなJSONデータが含まれているdata.jsonという名前のファイルが持っていると仮定すると、psqlを使用してJSONデータをPostgreSQLにインポートするにはどうすればよいですか?

[ 
    {"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のコマンドは2つの二重引用符を持つすべての二重引用符を置き換え、ファイルを読み込み、そして最終的に猫が前後に二重引用符を置く

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

:あなたは、あなたのCSVファイルを引用する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)' 
関連する問題