pandas read_sql 中的“TypeError:‘NoneType’对象不可迭代”

2023-12-10

我正在尝试在 python 中使用 pyodbc 运行 SQL 命令。 其中SQL命令包含多个SELECT命令和IF语句。

但我收到如下错误

columns = [col_desc[0] for col_desc in cursor.description]
TypeError: 'NoneType' object is not iterable

import pyodbc
import pandas as pd
conn = pyodbc.connect("DRIVER={SQL Server};"
                "SERVER=server_name;"
                "DATABASE=master;"
                "Trusted_Connection=yes;")
cursor = conn.cursor()
script="""

If object_id ('tempdb..#Temp1')is not null
drop table #Temp1
Select distinct  a1.some_ID into #Temp1
from DOC.dbo.Document_tbl (NOLOCK)a1
from #Temp1 a1
If object_id ('tempdb..#Temp2')is not null
Drop table #Temp2
select distinct v2.some_data
into #Temp2 from tbl_name (nolock) v2 

If object_id ('tempdb..#Results')is not null
drop table #Results
select distinct a1.*,b1.####
into #Results
from #Temp1 a1
left join #Temp2 b1 on a1.## = b1.##
Select * from #Results
"""

df = pd.read_sql(script, cnxn)
writer = pd.ExcelWriter('result.xlsx')
df.to_excel(writer, sheet_name ='bar')
writer.save()

包含多个 SQL 语句的 SQL 命令文本称为匿名代码块。匿名代码块可以返回多个结果,其中每个结果可以是

  • 行数,
  • 包含零行或多行数据的结果集,或者
  • 一个错误。

下面的例子失败了...

sql = """\
SELECT 1 AS foo INTO #tmp;
SELECT * FROM #tmp;
"""
df = pd.read_sql_query(sql, cnxn)
# TypeError: 'NoneType' object is not iterable

...因为第一个SELECT ... INTO返回第二个之前的行数SELECT返回其结果集。

修复方法是使用以下命令启动匿名代码块SET NOCOUNT ON;它会抑制行计数并仅返回结果集:

sql = """\
SET NOCOUNT ON;
SELECT 1 AS foo INTO #tmp;
SELECT * FROM #tmp;
"""
df = pd.read_sql_query(sql, cnxn)
# no error
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas read_sql 中的“TypeError:‘NoneType’对象不可迭代” 的相关文章

  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm

随机推荐

  • EventSource .net 4.0 生成清单

    我一直在尝试在 net 4 0 中使用 ETW 我已经开始使用 Microsoft EventSource Library 1 0 4 beta https www nuget org packages Microsoft Diagnost
  • 尝试了解输入验证循环

    在此输入验证 while 循环中 在调用我的控制台输出后显示 cerr 它显示为 输入费率 无效费率 例如 Enter rate 750 Enter rate Invalid Rate 它与 do while 循环的作用相同 有什么建议或帮
  • Angular 2 ngIf 和 CSS 过渡/动画

    我想要一个 div 使用 css 从角度 2 右侧滑入 div class note p Notes p div
  • Javascript 函数打印 .innerHTML 但 HTML 只出现一会儿就消失了

    我有一个调用名为 submit 的 javascript 函数的按钮 在该函数中 我只需编写 document getElementById try innerHTML it Work 测试我的按钮是否正在将数据传递给函数 问题是 它有效
  • 如何在phonegap中同时选择多个文件

    我在这里用谷歌搜索并搜索 我没有找到任何与phonegap中的多个文件选择器或选择器相关的选择解决方案 目前我可以在phonegap 适用于Android 中一次选择单个文件 无需任何插件用它来获取文件 如何在 PhoneGap 中一次选取
  • 如何将通过C++中的另一个类添加的数据显示到ListView、QML?

    我需要呈现 QLinkedList 容器中的所有数据 这是由任务给出的 我创建了两个类 DataObject 用于 ListView 中的委托 Glav 用于包含 DataObject 对象的容器 我有一个按钮 可以通过它向容器添加数据 G
  • 在 Visual Studio 2019 中禁用工具提示

    将鼠标悬停在 C 文件中的每一段文本上都会弹出一个 提示 有谁知道如何删除这些提示 如果您能告诉我如何从 Visual Studio 2019 中的每个窗口中全局删除所有工具提示 那就加分了 Visual Studio 没有关闭工具提示的设
  • C++11 中的隐式构造函数参数转换

    让我们考虑以下代码 class A public A int x class B public B A a int main B b 5 return 0 在编译时 编译器抱怨 home test main cpp 80 candidate
  • 使用 PHP 连接到 EPP 服务器,使用 SSL

    我即将连接到安全 EPP 服务器并发送 XML 请求 然后再次接收 XML 格式的响应 我需要在 PHP 中执行此操作 因此 我需要使用 SSL 证书通过 TCP 连接到特定端口上的 EPP 服务器 因为这是我到目前为止所掌握的信息 仍在等
  • node.js socket.io room 用户总数

    我正在尝试计算特定房间中的用户总数并将其广播给该房间中的所有人 这是我所拥有的 但出现错误 var clients io sockets clients cc lowerCase data roomname length io socket
  • 如何在画布上保存图像和文本

    我制作了一个画布并在画布上绘制了图像我还在上面绘制了一些文本 帆布 图像和文本现在都是独立的 我想要那个 当我 绘制应打印在图像上的文本 我可以保存现在的图像和文本 在图像上 我想在另一个活动中发送带有文本的图像 here is my co
  • Web api - 如何使用 slugs 进行路由?

    我希望能够解析像这个问题这样的链接 http stackoverflow com questions 31223512 web api how to route using slugs 所以简单地在服务器上路由ignoringURL 的最后
  • 如何删除 C 语言中的这一行:“程序以退出代码结束:0”

    我用 C 语言编写了一段代码 它执行得很好 但最后我得到了一行 程序以退出代码结束 0 这条线意味着什么以及如何摆脱它 这是什么 退出代码 0 表示没有错误 如果一个程序想要 表明退出时出现问题 它将退出 非零值 如何摆脱它 不要使用IDE
  • Python中导入txt表文件的等高线图

    我正在尝试制作一个等高线图 例如 使用数据表 如 txt 文件中的 3 列 行数很长 使用此代码 import numpy as np import matplotlib pyplot as plt import scipy interpo
  • 自定义 Chrome 网络检查器的外观

    我已经厌倦了每天使用 Firefox 时遇到的众多问题 我再次尝试切换到 Chrome 让我沮丧的事情之一是检查器中选项卡的布局 在 Firebug 中 它们都位于顶部 所以如果我想要一个项目的指标 那是非常简单的 在 Chrome 中我总
  • ImportError:libcudnn.so.7:无法打开共享对象文件:没有这样的文件或目录[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我安装了Tensorflow 1 6 0 Python 3 6 4 环境中使用 anaconda 的 GPU 版本 当我做import tensorflow as tf 我收到以下错
  • 将 JavaScript 放置在 HTML 文件中的什么位置?

    假设我有一个相当大的 JavaScript 文件 压缩到大约 100kb 左右 我所说的文件是指它是一个外部文件 可以通过以下方式链接
  • 使用 msiexec /a 启动管理安装的目的是什么?

    Windows Installer 技术支持管理安装 启动管理安装的命令行是 msiexec a setup msi 我想了解这种安装的目的以及它们在什么情况下有帮助 管理安装 添加一些实际例子 1 静默运行提取 无图形用户界面 msiex
  • 用于 C++ 的 XML 数据绑定,如用于 Java 的 JAXB

    我在 C 中数据绑定和解析的使用 领域中以完全 天真 的方式写下这个问题 所以 请耐心听我说 您可能会发现这个问题与以下问题重复 THIS 经过一番谷歌搜索后 我发现 C 具有与 JAXB for java 类似的库 用于以 代码合成 xs
  • pandas read_sql 中的“TypeError:‘NoneType’对象不可迭代”

    我正在尝试在 python 中使用 pyodbc 运行 SQL 命令 其中SQL命令包含多个SELECT命令和IF语句 但我收到如下错误 columns col desc 0 for col desc in cursor descripti