首页 > 解决方案 > 将数据从 pandas 数据框导入 SQL Server 时忽略错误的最佳方法是什么?

问题描述

我正在编写一个 python 脚本来每天从遗留系统的数据转储中导入数据。我想导入数据并跳过引发错误的行(例如错误的数据类型)。实现这一目标的最佳方法是什么?

我当前的代码:

engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
conn = engine.connect()
df = pd.read_csv(file_path)
df.to_sql(tbl_name,conn,if_exists="append",index=False)

该文件相当大,因此我不希望像在某些示例中看到的那样遍历行。

标签: pythonsql-serverpandas

解决方案


默认情况下不应该df.to_sql忽略那些吗?我认为这就是它的工作原理。如果没有,只需设置一个 try catch 例程。

try:
  engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
  conn = engine.connect()
  df = pd.read_csv(file_path)
  df.to_sql(tbl_name,conn,if_exists="append",index=False)
catch:
  print('en erro was detected; please check...')

推荐阅读