Мне нужно вставить журналы из моего теста в таблицу в базе данных postgresql.

Мне удалось подключиться к БД, но я не могу понять, как вставить этот результат строки во вкладку, я пробовал ниже, но это не работает

import logging
import psycopg2
from io import StringIO
from config import config
params = config()
conn = psycopg2.connect(**params)
print(conn)
curr = conn.cursor()
try:

        if not hw.has_connection():
            logging.error('Failure: Unable to reach websb! ==> '+ str(driver.find_element_by_xpath('//span[@jsselect="heading" and @jsvalues=".innerHTML:msg"]').text))

            return

        elif hw.is_websiteReachable():
            logging.info("Success: website is reachable!")

            curr.execute("""INSERT INTO db_name(logs) VALUES (%s)""", ("Success: website is reachable!"))
             conn.commit()
  except:
        logging.error("Failure: Unable to reach website!")
        return

Я абсолютный новичок в этом. Я искал, но я не мог найти четкий пример или руководство по этому поводу. приведенный выше код создает исключение, даже если веб-сайт доступен. извините, если я звучу глупо.

0
Ryan 20 Дек 2019 в 17:56

2 ответа

Похоже, вы неправильно строите свой оператор SQL. Вместо INSERT INTO db_name(table_name) ... должно быть INSERT INTO table_name(column_name) .... Если вы правильно подключились к соответствующей базе данных в настройках подключения, вам обычно не нужно указывать имя базы данных каждый раз, когда вы пишете свой SQL.

Поэтому я бы порекомендовал следующую модификацию (при условии, что ваша таблица называется logs и имеет столбец с именем message):

# ...
sql = 'INSERT INTO logs(message) VALUES (%s);'
msg = 'Success: website is reachable!'
curr.execute(sql, (msg))
conn.commit()

Вы можете прочитать pyscopg2 документы здесь < / a> для получения дополнительной информации, если это поможет с передачей именованных параметров вашим SQL-запросам в Python.

0
yanniskatsaros 20 Дек 2019 в 18:13
Я добавил комментарии над циклом и конкретной строкой, которая выдает ошибку, это последний цикл в приведенном ниже коде:
 – 
Ryan
20 Дек 2019 в 20:14