运行时而非调试时使用SQL时出现浮点异常

2024-05-19 10:07:52 发布

您现在位置:Python中文网/ 问答频道 /正文

作为Python程序的一部分,我创建了一个在Db2服务器上运行sql查询的方法。这是:

def run_query(c, query, return_results=False):
    stmt = db.exec_immediate(c, query)

    if return_results:
        df = {}
        row = db.fetch_assoc(stmt)

        for key in [key.lower() for key in row.keys()]:
            df[key] = []

        while row:
            for key in [key .lower() for key in row.keys()]:
                df[key].append(row[key.upper()])

            row = db.fetch_assoc(stmt)

        return pd.DataFrame(df)

它使用ibm_db API库,其目标是运行SQL查询。如果需要结果,它会将结果集转换为数据帧,以便在程序中使用。当我运行程序以print(run_query(conn, "SELECT * FROM ppt_products;", True))打印返回的数据帧时,它不会打印任何内容,而是以以下错误代码退出:Process finished with exit code 136 (interrupted by signal 8: SIGFPE)(顺便说一句,我使用的是PyCharm Professional)。但是,当我使用PyCharm中的pydev调试器调试程序时,程序运行平稳并打印出所需的输出,如下所示:

         id brand model           url
0      2392   sdf  rtsg  asdfasdfasdf
1  23452345   sdf  rtsg  asdfasdfasdf
2      6245   sdf  rtsg  asdfasdfasdf
3      8467   sdf  rtsg  asdfasdfasdf

我曾尝试调试浮点异常,但只能通过名为fpectl的模块找到Python 2的解决方案,该模块可用于打开和关闭浮点异常

我将感谢任何帮助


Tags: keyrunin程序dffordbreturn
1条回答
网友
1楼 · 发布于 2024-05-19 10:07:52

错误只发生在PyCharm中。当我使用命令行运行它时,没有发生错误。这让我相信错误可能是在JetBrains运行脚本的机制中。感谢data_henrik建议使用pandas.read_sql,因为它简化了从sql查询中获取结果集的过程

相关问题 更多 >

    热门问题