У меня есть следующая таблица PostgreSql:
Я хочу вставить строковое значение 3 в первую строку под столбцом диагностики.Я пытаюсь следовать некоторому общему INSERT-коду из документации postgresql.Ниже приведен мой пробный код, который не работает.
diagnosis = 3;
pip install config
# insert
import psycopg2
from config import config
def insert_diagnosis(diagnosis):
""" insert a new diagnosis prediction into the eyeballtables table """
sql = """INSERT INTO eyeballtables(diagnosis)
VALUES(%s) RETURNING vendor_id;"""
conn = None
vendor_id = None
try:
# read database configuration
params = config()
# connect to the PostgreSQL database
conn = psycopg2.connect(**params)
# create a new cursor
cur = conn.cursor()
# execute the INSERT statement
cur.execute(sql, (diagnosis,))
# get the generated id back
vendor_id = cur.fetchone()[0]
# commit the changes to the database
conn.commit()
# close communication with the database
cur.close()
except (Exception, psycopg2.DatabaseError) as error:
print(error)
finally:
if conn is not None:
conn.close()
return vendor_id
Приведенный выше код не совсем верный, поскольку он не изолирует вставку от поля «диагностика» в таблице.Но помимо этого я также получаю следующую ошибку, хотя я успешно выполнил установку конфигурации для pip:
ImportError: cannot import name 'config' from 'config' (/home/pinzhi/anaconda3/lib/python3.7/site-packages/config.py)
Мысль о том, что я делаю неправильно, или если есть более простой способ вставить точку данных ву меня есть таблица PostgreSql?
РЕДАКТИРОВАТЬ --------------------------------------------------------------------- Ошибка конфигурации больше не появляется после того, как я следовал за предоставленным ответом.Но мой код выше не может вставить диагностическое значение 3 в таблицу.
Что я делаю не так?