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

如何使用pyodbc遍历字典将符合条件的数据写入数据库表?

用pyodbc将筛选后的嵌套字典数据插入数据库

已通过列表推导式筛选出country code为US的记录,存储在result中(每个元素是包含id、country_name、zip的元组),需要将这些数据插入到对应字段的数据库表中,修正后的插入代码如下:

基础遍历插入方案

# 假设已完成conn(数据库连接)和cursor(游标)的配置
# 提前定义SQL语句,避免循环内重复创建
insert_sql = """INSERT INTO tname (id, country_name, zip) VALUES (?, ?, ?)"""

# 遍历筛选后的结果,直接将元组作为参数传入execute
for record in result:
    cursor.execute(insert_sql, record)

# 所有插入操作完成后统一提交,提升效率
conn.commit()

关键说明

  • result中的每个元组顺序与INSERT语句的字段顺序完全匹配(id → country_name → zip),因此可以直接作为参数传递给cursor.execute()。
  • 将conn.commit()放在循环外部,避免每次插入都触发提交操作,减少数据库交互开销。

优化:批量插入方案

如果筛选后的记录数量较多,推荐使用executemany()方法批量插入,性能比循环execute()更优:

insert_sql = """INSERT INTO tname (id, country_name, zip) VALUES (?, ?, ?)"""
# 直接将整个result列表传入executemany
cursor.executemany(insert_sql, result)
conn.commit()

原理

executemany()接受的第二个参数是参数列表,每个元素为对应SQL占位符的参数集合,而你的result正好符合这个格式要求,无需额外转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:50:27