当前位置: 首页 > news >正文

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

【已解决】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 SQLAlchemypip3 install SQLAlchemy==1.4.45

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

# 新增位置一:
from sqlalchemy import textdef 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.lryc.cn/news/187100.html

相关文章:

  • STM32 CubeMX ADC采集(HAL库)
  • [UUCTF 2022 新生赛]ezpop - 反序列化+字符串逃逸【***】
  • Selenium进行无界面爬虫开发
  • 万宾荣获深圳应博会“全球应急产业先锋奖”创始人发表峰会演讲
  • 某果的一个小参数分析
  • java学习--day22(进程线程)
  • 对音频切分成小音频(机器学习用)
  • TensorFlow案例学习:对服装图像进行分类
  • 单目3D目标检测——SMOKE 模型推理 | 可视化结果
  • C++智能指针shared_ptr使用详解
  • 基于Java的个性化旅游攻略系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)
  • 中国替代方案探索:替代谷歌企业邮箱的选择
  • Holographic MIMO Surfaces (HMIMOS)以及Reconfigurable Holographic Surface(RHS)仿真
  • RK3568笔记一:RKNN开发环境搭建
  • 设计模式 - 行为型模式:策略模式(概述 | 案例实现 | 优缺点 | 使用场景)
  • rancher部署pv、pvc、离线部署nfs
  • 视频拍摄教程分享
  • IP组成,分类,子网划分
  • Python视频剪辑-Moviepy视频内容变换技术
  • OceanBase 数据库入门知识
  • 自定义无边框窗口
  • 【网络安全 --- kali2023安装】超详细的kali2023安装教程(提供镜像资源)
  • 机器学习笔记(二)
  • Java @Override 注解
  • 用rabbitMq 怎么处理“延迟消息队列”?
  • 不常见的JS加密分析
  • TCP原理特性详解
  • 什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载
  • Cesium 展示——读取文件——加载 geojson 文件数据
  • (二)Apache log4net™ 手册 - 配置