[英]Importing from Excel to MySQL Table Using Python 2.7
我正在嘗試從此Excel工作表中的數據插入MySQL表: https : //www.dropbox.com/s/w7m282386t08xk3/GA.xlsx?dl=0
該腳本應從第16行的第二張工作表“ Daily Metrics”開始。MySQL表已經具有名為date,campaign,user和session的字段。
使用Python 2.7,我已經創建了MySQL連接並打開了工作表,但是我不確定如何遍歷這些行並插入數據庫。
import MySQLdb as db
from openpyxl import load_workbook
wb = load_workbook('GA.xlsx')
sheetranges = wb['Daily Metrics']
print(sheetranges['A16'].value)
conn = db.connect('serverhost','username','password','database')
cursor = conn.cursor()
cursor.execute('insert into test_table ...')
conn.close()
謝謝你的幫助!
試試這個,看看它是否滿足您的要求。 您將需要更新到正確的工作簿名稱和位置。 另外, for rw in wb["Daily Metrics"].iter_rows("A16:B20"):
,在for rw in wb["Daily Metrics"].iter_rows("A16:B20"):
迭代要迭代的范圍for rw in wb["Daily Metrics"].iter_rows("A16:B20"):
from openpyxl import load_workbook
wb = load_workbook("c:/testing.xlsx")
for rw in wb["Daily Metrics"].iter_rows("A16:B20"):
for cl in rw:
print cl.value
只需要MySQL和Openpyxl的基礎知識,您可以通過閱讀教程自行解決。
在執行腳本之前,您需要創建數據庫和表。 假設您已完成。
import openpyxl
import MySQLdb
wb = openpyxl.load_workbook('/path/to/GA.xlsx')
ws = wb['Daily Metrics']
# map is a convenient way to construct a list. you can get a 2x2 tuple by slicing
# openpyxl.worksheet.worksheet.Worksheet instance and last row of worksheet
# from openpyxl.worksheet.worksheet.Worksheet.max_row
data = map(lambda x: {'date': x[0].value,
'campaign': x[1].value,
'users': x[2].value,
'sessions': x[3].value},
ws[16: ws.max_row])
# filter is another builtin function. Filter blank cells out if needed
data = filter(lambda x: None not in x.values(), data)
db = MySQLdb.connect('host', 'user', 'password', 'database')
cursor = db.cursor()
for row in data:
# execute raw MySQL syntax by using execute function
cursor.execute('insert into table (date, campaign, users, sessions)'
'values ("{date}", "{campaign}", {users}, {sessions});'
.format(**row)) # construct MySQL syntax through format function
db.commit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.