【发布时间】:2015-11-04 11:56:02
【问题描述】:
Pandas read_SQL 不工作,我正在尝试访问 SQL 数据透视函数(示例 1)。我已尝试读取所有数据,但 Pandas 不处理数据。
示例 1
sql_status_20 = """
SET NOCOUNT ON
USE [HilltopSamplerFix]
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
select @ColumnName = STUFF((SELECT distinct ',' +
QUOTENAME(Name)
FROM [Hilltopsamplerfix].[dbo].[tempHilltopWaterQualityExtractAll]
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '');
SET @DynamicPivotQuery =
N'SELECT
SiteID,SiteName,RunDate,SampleTime,SampleID,' + @ColumnName + '
FROM [Hilltopsamplerfix].[dbo].[tempHilltopWaterQualityExtractAll]
PIVOT(max(Value)
FOR Name IN (' + @ColumnName + ')) AS PVTTable'
EXEC sp_executesql @DynamicPivotQuery
"""
connection_string = '...works...'
cnxn = pyodbc.connect(connection_string)
test = pd.read_sql(sql_status_20, cnxn)
cnxn.close()
错误
columns = [col_desc[0] for col_desc in cur.description]
TypeError: 'NoneType' 对象不可迭代
【问题讨论】:
-
请将其限制为一个问题,例如将 pivot_table 上的第二个问题拆分为另一个问题。
-
关于第一个问题,你能显示
cnxn.execute(sql_status_20).fetchall()的输出吗? (这将测试查询本身,而不是将数据放入数据框中) -
谢谢乔里斯。 fetchall() “pyodbc.ProgrammingError: No results. Previous SQL is not a query”的结果。看来python无法处理高级查询。查询在 Studio 管理器中有效。
标签: python sql pandas pivot nonetype