gpt4 book ai didi

python - 处理由使用 psycopg2 和 pandas 的不正确查询产生的错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:14:12 26 4
gpt4 key购买 nike

我有一个使用 psycopg2 查询 postgres 服务器并返回 pandas 数据帧的函数。

有两个主要问题会导致函数失败。

1) 服务器已关闭 - 这由 psycopg2.OperationalError 异常处理。我可以用它来让用户知道他们应该检查服务器是否已启动。

2) 用户输入了错误的查询。

第二个是我需要帮助的。我相信这是一个数据库错误。我想将其用作异常(exception)并向用户打印一条消息以更正他们的查询。

代码示例如下:

conn = None
query = 'SELECT nonsense from schema1.table'
try:
conn = pyscopg2.connect(params)
df = pd.read_sql_query(query,conn)
except (psycopg2.OperationalError,psycopg2.DatabaseError) as e:
print (f'Query failed!\n\n{e})

对于上述不正确的查询,我希望错误消息是“查询失败!”然后是下面显示的错误。

目前我只是得到:

DatabaseError: Execution failed on query 'SELECT nonsense from schema1.table': column "nonsense" does not exist
LINE 1: SELECT nonsense from schema1.table

最佳答案

你应该/可以处理 pandas 级别的错误。

处理 pandas.io.sql.DatabaseError 对我有用:

from pandas.io.sql import DatabaseError 

try:
# ...
df = pd.read_sql_query(query, conn)
except DatabaseError as e:
print (f'Query failed!\n\n{e}')

关于python - 处理由使用 psycopg2 和 pandas 的不正确查询产生的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com