python 2.7需要使用标准库模块urllib,方法是urllib.quote_plus(pass_word),可解决密码中有’@‘导致host识别失败的问题
import configparser
from psycopg2 import sql
import psycopg2
import pandas as pd
from sqlalchemy import create_engine
import urllib
# 创建 ConfigParser 对象
config=configparser.ConfigParser()
config.read('config.ini')
def Mssql_export(file_path,user_name,pass_word,host,port,database):
#使用urllib.quote_plus(pass_word)转义
engine = create_engine('mssql+pymssql://{}:{}@{}:{}/{}'.format(user_name,urllib.quote_plus(pass_word), host, port, database))
while True:
table_name = raw_input('please input table_name:')
if table_name:
break # 如果输入非空,退出循环
df=pd.read_sql_table(table_name,con=engine)
df.to_csv(file_path,index=False)
print('export successfully')