You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于pyodbc读取数据库字典列表并按指定键值查询条目

Python通过pyodbc读取数据库并查找指定条目解决方案

需求说明

  • 使用pyodbc读取SQL Server数据库
  • 将游标结果转换为字典列表
  • 查找并打印user_username等于JOHNN的条目

修改后的完整代码

from flask import Flask
import pyodbc 

app = Flask(__name__)

# 建立数据库连接
conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=DESKTOP-9JKA425;'
                      'Database=PD;'
                      'Trusted_Connection=yes;')

cursor = conn.cursor()
cursor.execute('SELECT * FROM Users')

# 获取表头并转换为字典列表
columns = [column[0] for column in cursor.description]
results = []
for row in cursor.fetchall():
    results.append(dict(zip(columns, row)))

# 查找指定条目
target_username = 'JOHNN'
for item in results:
    if item.get('user_username') == target_username:
        print(f"找到匹配条目:{item}")
        break
else:
    print(f"未找到user_username为{target_username}的条目")

# 关闭连接,避免资源泄漏
conn.close()

关键说明

  • 字典列表转换:通过cursor.description获取表头字段名,再用zip将每行数据与字段名配对生成字典,让结果更易读和操作
  • 安全查找逻辑:使用get方法获取user_username字段,避免因字段不存在引发KeyError
  • 优化连接管理:添加conn.close()手动关闭连接,也可以用with语句自动管理连接,更简洁安全:
with pyodbc.connect('Driver={SQL Server};'
                    'Server=DESKTOP-9JKA425;'
                    'Database=PD;'
                    'Trusted_Connection=yes;') as conn:
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM Users')
    columns = [column[0] for column in cursor.description]
    results = [dict(zip(columns, row)) for row in cursor.fetchall()]
    
    # 查找逻辑同上

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:40:47