Python语言使用Oracle、Sqlserver数据库抓取数据
(一)安装所需安装包
我们需要使用pip来下载并安装几个所需的包pip install (安装包) ;如pymssql、cx_Oracle、pandas、numpy。
(二)引用相关包
如下:
import pymssql as ms
import pandas as pd
import numpy as np
import cx_Oracle as cx
Oracle数据库连接使用
如下代码:
class Oracle:
def executed(sql):
connection = cx.connect("xx", "xx", 'xxxxxx', encoding="UTF-8") # 數據庫(用戶名、密碼、地址、編碼形式)
cursor = cx.Cursor(connection) # 返回连接的游标对象
cursor = cursor.execute(sql) # 所以这个赋值语句是不必要的。另外,上面的例子和下面的例子也都没有执行赋值操作。
connection.commit() #提交sql
col_name = cursor.description # all rows in colum
data = cursor.fetchall() #获取数
cursor.close()
df = pd.DataFrame(data)
df1 = pd.read_sql(sql,connection) # 使用pandas將sql語句執行後直接dataframe
df1 = df1.to_json(orient="records",force_ascii=False) # dataframe轉化為json格式 ,force_ascii=False 可以兼容中文字符
return (col_name,data,df1)
# 从连接池中获取一个连接
connection.close()
SqlServer 数据库操作
如下代码:
class SQLServer:
def executed(self,sql):
msconn = ms.connect('xx','xx','xx','xx') #數據庫連接(服務器地址,用戶名,用戶密碼,數據庫名稱)
cursor2 = msconn.cursor()
cursor2.execute(sql) # "sql语句"
col_name = cursor2.description # all rows in colum
data = cursor2.fetchall() #获取数
msconn.commit()
cursor2.close()
df1 = pd.read_sql(sql,msconn) # 使用pandas將sql語句執行後直接dataframe====>df1['EXPDateD']= df1['EXPDateD'].astype('datetime64[ns]')類型轉換///df1.dtypes類型查看
df1 = df1.to_json(orient="records",force_ascii=False,date_format='iso') # dataframe轉化為json格式 (force_ascii=False顯示中文編碼,date_format='iso'顯示ISO時間格式)
msconn.close()
return df1