如何使用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
相关产品推荐
相关产品推荐

