Я новичок в postgresql.Я хотел бы вставить информацию из .json и создать новую таблицу в Postgreswl, используя python / psycopg2.Я просмотрел некоторые посты stackoverflow и документацию psychopg2 без особой помощи.Ближайший вопрос - здесь , который я получил из следующих кодов:
Тестовый файл .json выглядит следующим образом (который имеет только одноуровневую структуру или не имеет вложенной структуры .json):
[{"last_update": "2019-02-01"}]
Попытка кода Python:
import psycopg2
from psycopg2.extras import Json
from psycopg2 import Error
from unipath import Path
import io
def insert_into_table(json_data):
try:
with psycopg2.connect( user = "thisuser",
password = "somePassword",
host = "127.0.0.654165",
port = '5455',
database = "SqlTesting") as conn:
cursor = conn.cursor()
read_json = io.open(data_path, encoding='utf-8')
read_json_all = read_json.readlines()
query = "INSERT INTO new_table VALUES (%s)"
cursor.executemany(query, (read_json_all,))
conn.commit()
print("Json data import successful")
except (Exception, psycopg2.Error) as error:
print("Failed json import: {}".format(error))
insert_into_table(data_path)
Приведенный выше код не работал, независимо от того, был ли new_table
несуществующим или создан вручную в качестве заполнителя.Я получил следующее сообщение об ошибке:
Failed json import: relation "new_table" does not exist
LINE 1: INSERT INTO new_table VALUES ('[{"last_update": "2019-02-01"...
Во время отладки я увидел:
for i in read_json:
print (i)
# will result
# [{"last_update": "2019-02-01"}]
И
print (read_json_all)
# Will result
# ['[{"last_update": "2019-02-01"}]']