python - Python SQL 查询执行
问题描述
我尝试运行 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 *', ...)
对该表执行 a 。
推荐阅读
- android - 无法读取 adbkit 中未定义的属性“管道”
- python - 如何仅裁剪 numpy 数组的一些值?
- javascript - 当我重构我的 JS 脚本时,我在 ubuntu 20.04 操作系统上使用 zendesk 代码库(使用“zat 主题预览”)时遇到问题
- jira - Jira 项目模板配置 json 文件文档在哪里?
- charts - 条形图chartjs的线性x轴
- css - FontAwesome 图标下载后不显示?(适用于 URL,不适用于 SRC)
- jquery - 如何使用 jquery 从数据表中检索单列值
- android - Android gradle appt 获取使用的详细 aapt 命令
- node.js - 如何在 bash 中将 JSON 转换为 TSV
- javascript - 时刻检查日期差异是否大于 X 个月