Как передать данные JSON в базу данных PostgresSql, используя python - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть файл JSON.Я попытался передать данные JSON в PSQL

. Я пытался это сделать. Пока

import psycopg2
import json
with open('jsondata.json') as f:
        data = f.read()
        dd= json.loads(data)

print(dd)
conn = psycopg2.connect(database="testdb", user = "postgres",  password = "postgres",host = "127.0.0.1", port = "5432")

print "Opened database successfully"
cur = conn.cursor()
cur.execute(''' CREATE TABLE test(SUM INT NOT NULL,
                                      APP  CHAR[30] NOT NULL,
                                                      ID INT NOT NULL,
                                                      DOMAINNAME TEXT NOT NULL,
                                      DOMAINID INT NOT NULL);''')
print "Table Created successfully"

print(type(data))
cur.execute("INSERT INTO test(SUM,APP,ID,DOMAINNAME,DOMAINID) VALUES($1,$2,$3,$4,$5)", (str(dd["sum"]),str(dd["app"]),str(dd["id"]),str(dd["Domain_name"]),str(dd["Domain_Id"])))
print "Data Entered successfully"
conn.commit()
conn.close()
print "connection closed successfully"

Я получаю эту ошибку

cur.execute("INSERT INTO test(SUM,APP,ID,DOMAINNAME,DOMAINID) VALUES($1,$2,$3,$4,$5::json)", (str(dd["sum"]),str(dd["app"]),str(dd["id"]),str(dd["Domain_name"]),str(dd["Domain_Id"])))

Ошибка типа: индексы списка должны бытьцелые числа, а не str

Я ожидаю вывода

Ожидается таблица

...