python访问mysql和pg库

## python访问mysql数据库
import pandas as pd
import pymysql 
def visitMysql(params , sql):
   try: 
       conn=pymysql.connect(host = params.get('host'), 
                            port = params.get('port'),
                            user = params.get('username'), 
                            passwd = params.get('password'),
                            db = params.get('database') ) 
       cursor = conn.cursor()#使用cursor()方法获取用于执行SQL语句的游标
       cursor.execute(sql)# 执行SQL语句
       data = cursor.fetchall()
       #下面为将获取的数据转化为dataframe格式
       columnDes = cursor.description #获取连接对象的描述信息
       columnNames = [columnDes[i][0] for i in range(len(columnDes))] #获取列名
       df = pd.DataFrame([list(i) for i in data],columns=columnNames) #得到的data为二维元组,逐行取出,转化为列表,再转化为df
       cursor.close()
       conn.close()
       return df
   except Exception as e:
        print(e) 

### python访问pg库,将取到的数据存入DataFrame中返回
##  params : pg库的参数
##  sql : 数据库查询代码
def visitPg(params , sql):
   try:
        import psycopg2
        conn = psycopg2.connect(database = params.get('database'),
                                user = params.get('username'),
                                password = params.get('password'),
                                host = params.get('host'),
                                port = params.get('port'))
        cursor = conn.cursor()
        cursor.execute(sql)# 执行SQL语句
        data = cursor.fetchall()
        #下面为将获取的数据转化为dataframe格式
        columnDes = cursor.description #获取连接对象的描述信息
        columnNames = [columnDes[i][0] for i in range(len(columnDes))] #获取列名
        df = pd.DataFrame([list(i) for i in data],columns=columnNames) #得到的data为二维元组,逐行取出,转化为列表,再转化为df
        cursor.close()
        conn.close()
        return df
   except Exception as e:
        print(e)

 ## 根据传入的参数加载数据库表中的数据
def loatData(mysql_params  , pg_params ,   bd_sort ,sql_text):
     try:
            if bd_sort == 'mysql':
               data_df_in =  visitMysql(mysql_params , sql_text)
            elif bd_sort == 'pg' :
               data_df_in =  visitPg(pg_params , sql_text)
            return data_df_in
     except Exception as e:
            print(e)  
# 调用示例
import pandas as pd
if __name__ == '__main__':
# mysql的环境配置
    pg_params =   {'host' : IP地址,
                      'username': 用户名,
                      'password': 密码,
                      'port': 端口,
                      'database' : schema
        			   }
    sql1 = "select *from table_name"
    data_df = visitPg(pg_params , sql1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值