一、資料準備
1、excel資料準備(包含字串、整數、小數、科學計數法、空值)
2、oracle建表
二、**注意:必要時需要先刪除資料庫中資料再導數入庫。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cx_oracle
import csv
import xlrd
import os
import re
class
importoracle
(object):
definoracle
(self)
:pass
defconnoracle
(self)
: conn = cx_oracle.connect(
"使用者名稱"
,"密碼"
,"ip:埠/服務名"
) cursor = conn.cursor(
)# 給字元資料加上引號
fields =
['\''
+i+'\''
for i in self.title]
# 從第一列資料開始
fields_str =
', '
.join(fields[0:
])#print(fields_str)
for i in self.data:
print
(i)# 插入引號,確保格式正確
a=['\''
+str
(b)+
'\''
for b in i]
value =
','.join(a[0:
])# 去掉資料中的[null]
sql =
'insert into %s values(%s)'
%(self.table_name, re.sub(
'\[null\]+',''
, value)
)# 列印生成的sql
print
(sql+
'\n\n\n'
)# 執行sql語句並提交
cursor.execute(sql)
conn.commit(
)# 全部提交後關閉連線,釋放游標
cursor.close(
) conn.close(
)class
importoraclecsv
(importoracle)
:def
inoracle
(self)
: contents=
with
open
(self.filename,
'r')
as f:
reader = csv.reader(f)
# 將科學計數現實的數字顯示
for i in reader:
# 獲取第一行為列名
title = contents[0]
# 獲取資料,去掉第一行
data = contents[1:
]return
(title, data)
class
importoracleexcel
(importoracle)
:def
inoracle
(self)
: wb = xlrd.open_workbook(self.filename)
#使用第乙個sheet表
sheet1 = wb.sheet_by_index(0)
title = sheet1.row_values(0)
#獲取第一行作為表頭
data =
[sheet1.row_values(row)
for row in
range(1
, sheet1.nrows)
]print
(data)
return
(title, data)
#匯入非excel文件報錯'undefine file type'
class
importerror
(importoracle)
:def
inoracle
(self)
:print
('undefine file type'
)return
0class
choosefactory
(object):
choose =
choose[
'csv'
]= importoraclecsv(
) choose[
'xlsx'
]= importoracleexcel(
) choose[
'xls'
]= importoracleexcel(
)def
choosefile
(self, ch)
:if ch in self.choose:
op = self.choose[ch]
else
: op = importerror(
)return op
if __name__ ==
"__main__"
: os.chdir(r'c:\\'
)#改變當前工作目錄到指定的路徑
file_name =
'fxm_test.xlsx'
table_name =
'fxm_test'
#獲取資料夾型別
op = file_name.split(
'.')[-
1]factory = choosefactory(
) cal = factory.choosefile(op)
cal.filename = file_name
(cal.title, cal.data)
= cal.inoracle(
) cal.table_name = table_name
cal.connoracle(
)
三、結果四、參考資料excel檔案匯入oracle(python指令碼匯入) 利用Python處理Excel資料
資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas import...
利用Python處理Excel資料
目錄 資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas imp...
python統計excel利用pandans的分組
python統計excel利用pandans的分組,其中還用列表資料求差集 csv資料結構 有三個按照日期統計的csv 需要統計出這三張csv按照areaid缺少的type和bdtype 其中type 1,2,3,4 bdtype 1,3,4 原始碼如下 第一步資料初步處理刪除非必須列 coding...