How to insert JSONB into Postgresql with Python?

Jonathan picture Jonathan · Sep 23, 2017 · Viewed 7.8k times · Source

I am new to python and postgresql

I've been battling just hardcoding each json line with python and I don't think this the scalable method. If someone can point me to the literature or documentation that can handle json insertion from python without hardcoding.

I've looked into COPY.

Answer

Clodoaldo Neto picture Clodoaldo Neto · Sep 23, 2017
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])

Output:

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