热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在postgresql表中插入python日志?

我需要将测试用例中的日志插入到postgresql数据库中的表中。我能够连接到

我需要将测试用例中的日志插入到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

我是一个完全的初学者。我已经搜索过,但找不到清晰的示例或指南。即使网站可访问,上述代码也会引发异常。对不起,如果我听起来很笨。


您似乎错误地构造了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文档here以获得更多信息,如果这有助于将命名参数传递给Python中的SQL查询。

,

您可以查看我个人在服务器内项目中使用的 a good solution。你只需要为 CRUD 对象提供一个连接字符串,所有的事情都会完成。对于 Postgres,您可以使用:

'postgresql+psycopg2://username:password@host:port/database'

'postgresql+pg8000://username:password@host:port/database'

有关详细信息,请查看 SQLAlchemy Engine Configuration。


推荐阅读
author-avatar
我的灵魂在黑夜P里徘回
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有