繁体   English   中英

Python SQL 查询执行

[英]Python SQL Query Execution

我尝试运行 SQL 查询以在表和添加列之间执行查找并更新 SQL 中新表中的结果,然后在 Pandas 数据框中传递新表。

但是当我执行时,我收到以下错误:

File "C:\Users\Sundar_ars\Desktop\Code\SQL_DB_Extract_1.py", line 27, in <module>
df1 = pd.read_sql(Sql_Query,conn)
  File "C:\Users\Sundar_ars\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\sql.py", line 602, in read_sql
    return pandas_sql.read_query(
  File "C:\Users\Sundar_ars\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\io\sql.py", line 2117, in read_query
    columns = [col_desc[0] for col_desc in cursor.description]
TypeError: 'NoneType' object is not iterable"

下面是代码:

import pypyodbc
import pandas as pd

SERVER_NAME ='DESKTOP-LBM9IMO\SQLEXPRESS'
DATABASE_NAME='721991dc-b510-40b2-ac5b-4d005a3cfd14'


conn = pypyodbc.connect("""
    Driver={{SQL Server Native Client 11.0}};
    Server={0};
    Database={1};
    Trusted_Connection=yes;""".format(SERVER_NAME, DATABASE_NAME)
    )

Sql_Query = """
SELECT [EventFrequency].[ResultID]
      ,[EventFrequency].[EventFrequency]
      ,[EventFrequency].[ImmediateIgnitionFrequency]
      ,[EventFrequency].[DelayedIgnitionFrequency]
      ,[Result].[OnshoreCaseID]
INTO [%s].[SafetiRisk].[UpdatedEventFreq]
FROM [%s].[SafetiRisk].[EventFrequency]
LEFT OUTER JOIN [%s].[SafetiRisk].[Result]
ON [EventFrequency].[ResultID] = [Result].[ResultID]
""" %(DATABASE_NAME, DATABASE_NAME, DATABASE_NAME)

df1 = pd.read_sql(Sql_Query,conn)
print(df1)

任何人都可以指导我我做错了什么。 谢谢

read_sql()假设您的查询返回行 - 但您的 SQL 查询修改行(不返回任何行)。

如果要获取[SafetiRisk].[UpdatedEventFreq] ,则应执行第一个查询对该表执行read_sql('SELECT ... ', ...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM