【已解决】Python读取sql数据,报错:Not an executable object,解决方案

news2024/11/24 10:03:09

【已解决】Python读取sql数据,报错:Not an executable object,解决方案

1.报错内容:

通过Python连接sql,读取sql中数据,报错:Not an executable object。具体代码及报错内容见下:

def employee():
    employee_id = []
    try:
        engine = sql_cn.connect_sql_ob_10200("prod")
        
        with engine.connect() as conn:
            # 获取实验组专家
            sql = '''SELECT employee_account_id FROM employee_group where employee_group ='B' '''
            result = conn.execute(sql)
            for row in result:
                employee_id.append(row[0])
    except Exception as e:
        logger.error(f"获取专家ID出现问题:{e}")
        
    logger.info(f"专家获取完成, 共:{len(employee_id)}")
    return employee_id

报错内容:
在这里插入图片描述

Not an executable object: "SELECT employee_account_id FROM employee_group where employee_group ='B' "

2.报错原因:

  • 当前执行语句不是一个可执行对象,主要是由于sqlalchemy版本不同造成的。sqlalchemy中1.4和2.0两种不同的语法。(如果版本可以回退,直接回退就可以解决)

3.解决方案:

方案一:回退版本。

  • sqlalchemy的1.4和2.0两种不同的语法,pandas暂时还不支持2.0,所以将sqlalchemy回退到1.4.45即可。
pip3 uninstall SQLAlchemy

pip3 install SQLAlchemy==1.4.45

方案二:如果不可以回退,通过导入其他包解决:

# 新增位置一:
from sqlalchemy import text

def employee():
    employee_id = []
    try:
        engine = sql_cn.connect_sql_ob_10200("prod")
        
        with engine.connect() as conn:
            # 获取实验组专家
            sql = '''SELECT employee_account_id FROM employee_group where employee_group ='B' '''
            # 修改位置二:
            result = conn.execute(text(sql))
            for row in result:
                employee_id.append(row[0])
    except Exception as e:
        logger.error(f"获取专家ID出现问题:{e}")
        
    logger.info(f"专家获取完成, 共:{len(employee_id)}")
    return employee_id

附:pd.read_sql_query() 报错:‘OptionEngine’ object has no attribute ‘execute’ 解决方案

  • 该问题和前面基本原因是一样的,只要修改连接方式,则可解决:

报错代码:

def get_index_data():
    engine = sql_cn.connect_sql_ob_10200("prod")
    sql = "select * from da_defeat_act.label_customer_index"

    index_data = pd.read_sql_query(sql, engine)
    
    return index_data

报错内容:
在这里插入图片描述

修改后代码:

def get_index_data():
    engine = sql_cn.connect_sql_ob_10200("prod")
    # 新增位置一
    connection = engine.connect()
    sql = "select * from da_defeat_act.label_customer_index"
		
		# 修改位置二:
    index_data = pd.read_sql_query(text(sql), connection)
    
    return index_data

以上问题,如果可以回退版本号,推荐回退版本号,这样效率更高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么mac上有的软件删除不掉?

对于Mac用户来说,软件卸载通常是一个相对简单的过程。然而,有时你可能会发现某些软件似乎“顽固不化”,即使按照常规方式尝试卸载,也依然存在于你的电脑上。这到底是为什么呢?本文将探讨这一问题的可能原因。 1.卸载失…

实用指南:如何解决企业组网中网络卡顿问题?

随着互联网的发展,企业逐步将办公应用系统部署在内网服务器或者上云了,导致很多日常工作都需要网络才能访问。员工在工作的时候网络不给力,卡顿半天也打不开,非常影响工作效率和心情。 在企业组网过程中,网络卡顿现象的…

解决mysql去掉字段空格:中间空格,左侧空格,右侧空格,两端空格,水平制表符(tab键或者\t)空格,换行键(\n)空格,回车键(Enter键)空格

1. 复现错误 今天,查看我禅道上的日志,发现有这个错误: 数据库查询处的字段,存在空格,那么,怎么解决这个问题呢? 2. 解决思路 首先打开控制台,查看所调用的接口。 通过接口找到对应…

线程的概念及使用

1.C11 Thread线程库的使用 本文详细介绍C11 线程库的基本使用,包括如何创建线程、启动线程、等待线程完成、如何分离线程。 创建线程 线程的概念及使用 线程:进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序…

再创佳绩!移远通信RG500U-EA 5G模组获得全球首个紫光展锐V510平台GCF 认证

近日,移远通信工规级5G模组RG500U-EA顺利通过GCF认证,成为全球首款通过该认证的基于紫光展锐V510平台的5G模组。 GCF认证是一种国际性的产品一致性认证,该认证的通过,表明移远通信RG500U-EA模组满足不同运营商的规范要求&#xff…

CUDA学习笔记1——核函数与线程

CUDA安装并配置环境后&#xff0c;使用VS新建工程时会出现对应选项&#xff1a; CUDA核函数调用 CUDA核函数必须用限定词 global 修饰&#xff0c;返回类型必须为void&#xff0c;二者次序随意。函数名与()之间用三括号<<<网格大小&#xff0c;线程块大小>>&…

Visual Studio 2019中的安全问题

最近&#xff0c;在使用Visual Studio 2019的时候遇到了一个很奇怪的问题&#xff0c;如下所示。 这里一直在说scanf函数不安全&#xff0c;导致报错&#xff0c;然后上网查了查相关资料&#xff0c;发现在代码中加那么一句就可以了&#xff0c;而且必须放在最前面。 #define …

网络安全:个人信息保护,企业信息安全,国家网络安全的重要性

在当前的数字化时代&#xff0c;无论是个人&#xff0c;企业&#xff0c;还是国家&#xff0c;都会面临严重的网络安全威胁。网络安全不仅涉及我们的日常生活&#xff0c;也涉及到社会的稳定和国家的安全。这就需要我们高度重视网络安全&#xff0c;强化个人信息保护&#xff0…

HRB系列 电源升压模块直流可调低压升高压输出DC/DC升压变换器

特点 效率高达 80%以上1*2英寸标准封装单电压输出价格低稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上 应用 HRB W2~40W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36V、…

Quarto 入门教程 (3):代码框、图形、数据框设置

简介 本文是《手把手教你使用 Quarto 构建文档》第三期&#xff0c;前两期分别介绍了&#xff1a; 第一期 介绍了Quarto 构建文档的原理&#xff1b;可创建的文档类型&#xff1b;对应的参考资源分享。 第二期 介绍了如何使用 Quarto&#xff0c;并编译出文档&#xff08;PDF…

设备管理团队如何做好停机维护工作_基于PreMaint设备数字化平台

在现代工业生产中&#xff0c;设备的正常运行对于企业的生产效率和利润至关重要。而停机维护作为设备管理的重要环节&#xff0c;旨在确保设备的安全性、可靠性和性能稳定。本文将介绍停机维护的概念&#xff0c;讨论如何计划停机维护&#xff0c;并重点探讨如何通过PreMaint设…

Linux 部署项目

部署 Linux 部署项目1. 宝塔部署1.1 前端部署1.2 后端部署 2. docker 部署2.1 后端部署2.2 前端部署 3. 跨域问题3.1 Nginx 代理&#xff08;推荐&#xff09;3.2 修改后端服务3.3 添加 web 全局请求拦截器 4. 域名解析DNSPod添加域名 Linux 部署项目 1. 宝塔部署 准备工作&am…

Kafka消费者群组和负载均衡

前言 在大数据时代&#xff0c;消息处理成为众多企业关注的焦点。而Kafka作为一种高性能、分布式的消息系统&#xff0c;通过其消费者群组和负载均衡的特性&#xff0c;实现了高效的消息处理和可靠的数据传递。 消费者群组 Kafka的消费者群组是一种灵活而强大的机制&#xff…

Java进阶——Java深入学习的笔记汇总 JVM底层、多线程、类加载 ...

前言 spring作为主流的 Java Web 开发的开源框架&#xff0c;是Java 世界最为成功的框架&#xff0c;持续不断深入认识spring框架是Java程序员不变的追求&#xff1b;而spring的底层其实就是Java&#xff0c;因此&#xff0c;深入学习Spring和深入学习Java是硬币的正反面&…

Win10系统打开组策略编辑器的两种方法

组策略编辑器是Win10电脑中很实用的工具&#xff0c;它可以帮助用户管理和设置计算机的安全性、网络连接、软件安装等各种策略。但是&#xff0c;很多新手用户不知道打开Win10电脑中组策略编辑器的方法步骤&#xff0c;下面小编给大家介绍两种简单的方法&#xff0c;帮助打开快…

uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别

问题&#xff1a;navigateBack&#xff08;&#xff09;emit事件在onload()监听不到 从A页面跳转到B页面&#xff0c;在B点击产生数据后&#xff0c;跳转回到A&#xff0c;并告诉A点击的数据是什么&#xff0c;使用&#xff1a; navigateBack&#xff08;&#xff09; B页面&…

内存溢出和内存泄漏

内存溢出和内存泄漏 内存溢出 内存溢出相对于内存泄漏来说&#xff0c;尽管更容易被理解&#xff0c;但是同样的&#xff0c;内存溢出也是引发程序崩溃的罪魁祸首之一。由于GC一直在发展&#xff0c;所以一般情况下&#xff0c;除非应用程序占用的内存增长速度非常快&#xf…

李沐深度学习记录5:13.Dropout

Dropout从零开始实现 import torch from torch import nn from d2l import torch as d2l# 定义Dropout函数 def dropout_layer(X, dropout):assert 0 < dropout < 1# 在本情况中&#xff0c;所有元素都被丢弃if dropout 1:return torch.zeros_like(X)# 在本情况中&…

模拟器运行在AndroidStudio内部,设置其独立窗口显示

在窗口内部运行 设置成独立窗口 Android Studio->Settings或Preferences->Tools->Emulator->取消勾选Launch in the Running Devices tool window --->点击右下角的OK按钮 ---> 重启Android Studio 再次启动模拟器

二维码基础学习指南

1.二维码基础原理 二维码生成原理及解析代码_二维码算法及原理-CSDN博客 2. 关于字符容纳的分辨 2.1 数字编码(Numeric Mode) 数字编码的范围为 0~9。 对于数字编码&#xff0c;统计需要编码数字的个数是否为 3 的倍数&#xff1a;如果不是 3 的倍数&#xff0c;则剩下的 1 …