Python读取PostgreSQL脚本导入SQL Server遇TypeError错误求助
解决read_sql()缺少'required positional argument: con'错误
这个错误本质是调用pandas.read_sql()时没传必填的数据库连接对象(con参数),下面是具体排查和解决步骤:
先确认PostgreSQL连接是否正确创建
不管用psycopg2还是SQLAlchemy,必须先建立有效的数据库连接:from sqlalchemy import create_engine # 替换成你的PostgreSQL实际信息 pg_con = create_engine('postgresql://username:password@your_pg_host:5432/your_db')如果用
psycopg2,要确保连接成功:import psycopg2 pg_con = psycopg2.connect( dbname='your_db', user='username', password='password', host='your_pg_host' )检查read_sql的调用格式
错误写法(缺con参数):import pandas as pd df = pd.read_sql("SELECT * FROM source_table") # 直接传SQL,没给连接正确写法(传入PostgreSQL连接):
df = pd.read_sql("SELECT * FROM source_table", con=pg_con)导入SQL Server的后续步骤
读取到数据后,写入SQL Server同样需要对应的连接对象:# 用SQLAlchemy创建SQL Server连接(需提前安装pyodbc) mssql_con = create_engine('mssql+pyodbc://username:password@your_mssql_host/your_db?driver=ODBC+Driver+17+for+SQL+Server') # 将数据写入SQL Server表 df.to_sql('target_table', con=mssql_con, if_exists='replace', index=False)额外排查点
- 确认连接字符串里的用户名、密码、主机地址、端口、数据库名完全正确
- 必要的依赖库是否安装:
pip install pandas psycopg2-binary sqlalchemy pyodbc - 检查PostgreSQL和SQL Server的服务是否正常运行,网络是否能互通
内容的提问来源于stack exchange,提问作者Cheng
相关产品推荐
相关产品推荐

