web-dev-qa-db-ja.com

PythonでJSONBをPostgresqlに挿入する方法は?

pythonとpostgresqlは初めてです

私は各json行をpythonでハードコーディングするだけで戦ってきましたが、これはスケーラブルな方法ではないと思います。誰かがハードコーディングせずにpythonからのjson挿入を処理できる文献やドキュメントを教えてくれたら。

COPYを調べました。

7
Jonathan
import json

data = [1, [2,3], {'a': [4,5]}]
my_json = json.dumps(data)
insert_query = "insert into t (j) values (%s) returning j"
cursor.execute(insert_query, (my_json,))
print (cursor.fetchone()[0])

出力:

[1, [2, 3], {'a': [4, 5]}]
5
Clodoaldo Neto

データセット+ psycopg2を使用

import dataset

def construct_pg_url(postgres_user='postgres', postgres_password='', postgres_Host='localhost', postgres_port='5432', postgres_database='postgres'):
    PG_URL = "postgresql://" + postgres_user + ":" + postgres_password + '@' + postgres_Host + ':' + postgres_port + '/' + postgres_database
    return PG_URL

pgconn = dataset.Database(
             url=construct_pg_url(),
             schema='my_schema'
)
table = pgconn['my_table']
rows = [dict(foo='bar', baz='foo')] * 10000
table.insert_many(rows)
1