新闻中心
将Python列表数据写入SQL Server数据库表的教程

本文旨在指导开发者如何使用Python将列表数据高效地写入SQL Server数据库表中。通过使用`ast.literal_eval()`安全地解析包含列表数据的文本文件,并结合`cursor.executemany()`方法,可以实现批量数据插入,避免手动解析和逐行插入,从而提高数据处理效率。
准备工作
在开始之前,请确保已安装以下组件:
- Python: 建议使用Python 3.6或更高版本。
- pyodbc: 用于连接SQL Server数据库的Python库。可以使用pip install pyodbc安装。
- SQL Server: 确保已安装并运行SQL Server数据库,并拥有可供写入数据的数据库和表。
步骤详解
以下步骤详细介绍了如何将Python列表数据写入SQL Server数据库表:
-
连接到SQL Server数据库:
首先,需要使用pyodbc库建立与SQL Server数据库的连接。请替换以下代码中的连接字符串,使其与你的数据库配置相匹配。
import pyodbc # 连接字符串,请根据实际情况修改 connection_string = ( r'DRIVER={SQL Server};' r'SERVER=your_server_name;' r'DATABASE=your_database_name;' r'UID=your_user_id;' r'PWD=your_password;' ) try: cnxn = pyodbc.connect(connection_string) cursor = cnxn.cursor() print("数据库连接成功!") except pyodbc.Error as ex: sqlstate = ex.args[0] print(f"数据库连接失败: {sqlstate}") exit()注意事项:
- 确保已安装SQL Server的ODBC驱动程序。
- 连接字符串中的your_server_name、your_database_name、your_user_id和your_password需要替换为实际的值。
- 如果使用Windows身份验证,连接字符串可能需要进行相应的修改。
-
读取包含列表数据的文件:
假设你有一个名为files.txt的文本文件,其中包含如下格式的列表数据:
小麦企业网站展示系统1.1
小麦企业网站展示系统介绍:一、安装使用将xiaomai.sql导入数据库二、后台登录后台帐号,密码默认都是admin,config.php 配置文件可根据自行需要修改,IP地址,数据库用户名,密码,及表名后台目录默认admin,支持自行任意修改目录名三、注意事项1 本源码完全免费,采用伪静态,减少不必要的源码重复,速度更快,支持二次开发。2、注明本程序编码为UTF8,如发生乱码,请注意修改编码3、
2
查看详情
[['ID', '001'], ['Name', 'Jon'], ['Score', '90'], ['Semester', 'Fall']] [['ID', '002'], ['Name', 'Ama'], ['Score', '87'], ['Semester', 'Fall']]
以下代码演示了如何读取文件并使用ast.literal_eval()安全地解析每一行数据:
from ast import literal_eval file_path = 'files.txt' data_list = [] try: with open(file_path, 'r') as file: for line in file: # 使用 ast.literal_eval 安全地解析字符串为列表 try: data = literal_eval(line.strip()) # 提取值,忽略键 row = [value for field, value in data] data_list.append(row) except (ValueError, SyntaxError) as e: print(f"解析行时出错: {line.strip()}, 错误信息: {e}") except FileNotFoundError: print(f"文件未找到: {file_path}") exit() print(f"成功解析 {len(data_list)} 行数据.")代码解释:
- ast.literal_eval()函数可以将字符串安全地解析为Python字面量,例如列表、字典等。
- 使用try...except块处理可能出现的ValueError或SyntaxError,例如文件内容格式不正确。
-
将数据写入SQL Server数据库表:
现在,可以使用cursor.executemany()方法将解析后的数据批量写入SQL Server数据库表。请确保已创建相应的表,并替换以下代码中的表名和列名。
# 假设数据库表中包含 id, name, score, semester 四列 sql_insert = "INSERT INTO yourTable (id, name, score, semester) VALUES (?, ?, ?, ?)" try: cursor.executemany(sql_insert, data_list) cnxn.commit() # 提交事务 print(f"成功插入 {cursor.rowcount} 行数据到数据库.") except pyodbc.Error as ex: sqlstate = ex.args[0] print(f"数据库插入失败: {sqlstate}") cnxn.rollback() # 回滚事务,防止数据不一致 # 关闭游标和连接 cursor.close() cnxn.close() print("数据库连接已关闭.")代码解释:
- cursor.executemany()方法可以批量执行SQL语句,提高数据插入效率。
- cnxn.commit()用于提交事务,将数据写入数据库。
- cnxn.rollback()用于回滚事务,在发生错误时撤销所有操作,保证数据一致性。
- 使用try...except块处理可能出现的数据库错误,例如表不存在、列名不正确等。
完整代码示例
import pyodbc
from ast import literal_eval
# 数据库连接字符串,请根据实际情况修改
connection_string = (
r'DRIVER={SQL Server};'
r'SERVER=your_server_name;'
r'DATABASE=your_database_name;'
r'UID=your_user_id;'
r'PWD=your_password;'
)
file_path = 'files.txt'
data_list = []
try:
cnxn = pyodbc.connect(connection_string)
cursor = cnxn.cursor()
print("数据库连接成功!")
try:
with open(file_path, 'r') as file:
for line in file:
# 使用 ast.literal_eval 安全地解析字符串为列表
try:
data = literal_eval(line.strip())
# 提取值,忽略键
row = [value for field, value in data]
data_list.append(row)
except (ValueError, SyntaxError) as e:
print(f"解析行时出错: {line.strip()}, 错误信息: {e}")
except FileNotFoundError:
print(f"文件未找到: {file_path}")
exit()
print(f"成功解析 {len(data_list)} 行数据.")
# 假设数据库表中包含 id, name, score, semester 四列
sql_insert = "INSERT INTO yourTable (id, name, score, semester) VALUES (?, ?, ?, ?)"
try:
cursor.executemany(sql_insert, data_list)
cnxn.commit() # 提交事务
print(f"成功插入 {cursor.rowcount} 行数据到数据库.")
except pyodbc.Error as ex:
sqlstate = ex.args[0]
print(f"数据库插入失败: {sqlstate}")
cnxn.rollback() # 回滚事务,防止数据不一致
# 关闭游标和连接
cursor.close()
cnxn.close()
print("数据库连接已关闭.")
except pyodbc.Error as ex:
sqlstate = ex.args[0]
print(f"数据库连接失败: {sqlstate}")
exit()总结
本文详细介绍了如何使用Python将列表数据写入SQL Server数据库表。通过使用ast.literal_eval()安全地解析数据,并结合cursor.executemany()方法进行批量插入,可以高效地完成数据导入任务。在实际应用中,请根据具体情况修改代码,例如调整连接字符串、表名、列名等。同时,务必注意错误处理,确保程序的健壮性和数据的完整性。
以上就是将Python列表数据写入SQL Server数据库表的教程的详细内容,更多请关注其它相关文章!
# 错误信息
# seo网站属于什么专业
# 南京快速建设网站
# seo官网内链优化
# 哪种行业适合做seo
# 防城港品牌推广招聘网站
# seo游戏推广软件
# 3如何做网站推广
# 三亚银川网站推广
# 马鞍山正规seo优化
# 产品推广营销怎么做的呢
# 不正确
# 可能出现
# word
# 实际情况
# 可以使用
# 详细介绍
# 请根据
# 行数
# 企业网站
# 文档
# sql语句
# win
# app
# windows
# python
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
如何使用Node.js csv 包按条件移除含空字段的CSV记录
win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
AO3官方可用镜像 Archive of Our Own网页版最新入口
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
新三国志曹操传110级星符试炼夏侯渊极难攻略
php源码怎么看淘宝客系统_看php源码淘宝客系统技巧
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
C++ explicit关键字防止隐式转换_C++构造函数安全规范
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
c++中的std::basic_string的SSO优化_c++短字符串优化深度解析
2026春节假期票务安排_2026春节放假购票指南
J*aScript Promise链中如何正确终止后续.then执行并处理错误
蛙漫2台版漫画地址 Manwa2正版网页版链接
lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略
抖音怎么赚钱_抖音创作者变现方法与途径指南
在Go Martini框架中高效服务动态生成图像的实践指南
在J*a中如何使用BigDecimal进行高精度计算_BigDecimal类应用指南
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
在J*a中如何隐藏复杂性_使用门面模式组织对象交互
Pandas DataFrame 多条件优先级排序与排名
J*a应用集成GitHub CLI与API认证指南
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
Go语言中JSON数据解码与字段访问指南
必由学官方登录入口 必由学教师学生账号快速访问
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
Win10系统怎么查看已安装更新_Win10卸载有问题的更新补丁
千牛数据看板网页版_千牛数据看板网页版访问方法
AO3最新入口2025公告_AO3中文官网合集
解决移动端滚动问题的overflow属性应用指南
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】
Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略
Django表单验证失败时保留用户输入数据的最佳实践
动漫花园资源网使用步骤_动漫花园资源网下载流程
Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址
海棠账号登录入口_登录海棠账户同步阅读记录
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
必由学官方平台入口 必由学在线课堂登录地址
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站


2025-11-01
浏览次数:次
返回列表