Python & PostgreSql: вставить значение в столбец таблицы - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть следующая таблица PostgreSql:

enter image description here

Я хочу вставить строковое значение 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 в таблицу.

Что я делаю не так?

1 Ответ

0 голосов
/ 27 сентября 2019

это Конфиг, а не конфиг

from config import Config
params = Config()
...